assembly - 这个汇编代码有问题吗?
问题描述
这段代码是使用 Turbo Assembler 组装的,但是当我尝试在 DOSBox 中运行它时,它会冻结并且 DOSBox 死掉。有什么问题吗?
TITLE SAMPLE PROGRAM
.MODEL SMALL
.STACK 64
.DATA
.CODE
MYCODE PROC
MOV AX,04
MOV BX,0212
CMP AX, BX
JG action1
JLE action2
action1:
ADD AL, 30
JMP exit
action2:
ADD BL, 20
JMP exit
exit:
MOV AX, 4CH
INT 21H
MYCODE ENDP
END MYCODE
解决方案
退出到 DOS是通过设置和调用AH
来完成的。通过编写,您将设置此值而不是. 在 AL 中,您可以设置退出代码。4CH
int 21h
MOV AX,4CH
AL
AH
要么做(选项1):
mov ah,4CH
int 21h
或(选项 2)
mov AX,4C00H ; or change 00 to any exit code you want.
int 21h
推荐阅读
- google-maps - 无法使用 Vue 浏览器脚本绘制多个标记
- c - 使用数组实现二叉树
- javascript - 如何创建时间选择器下拉菜单?
- swagger - Swagger 不工作有什么建议吗?
- elasticsearch - 查找存储在 ElasticSearch 中的字段中的不同字符串值列表
- ssl - 有没有办法为 SSLSocketFactory 和 SSLServerSocketFactory 指定端口范围
- c# - 比较来自用户的两个列表
- javascript - 如何切换一个类以显示 VueJS 中哪个选项卡处于活动状态?
- android - 如何将数据从 Android 应用程序传递到三星 Bixby 胶囊?
- c# - c#:递归选择排序不显示任何结果