这个汇编代码有问题吗?
Is there something wrong with this assembly code?
此代码是 assemble 使用 Turbo 汇编程序的,但是当我在 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
Exit to DOS 是通过将 AH
设置为 4CH
并调用 int 21h
来完成的。通过写入 MOV AX,4CH
,您将使用此值而不是 AH
设置 AL
。在 AL 中,您可以设置退出代码。
要么(选项 1):
mov ah,4CH
int 21h
或(选项 2)
mov AX,4C00H ; or change 00 to any exit code you want.
int 21h
此代码是 assemble 使用 Turbo 汇编程序的,但是当我在 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
Exit to DOS 是通过将 AH
设置为 4CH
并调用 int 21h
来完成的。通过写入 MOV AX,4CH
,您将使用此值而不是 AH
设置 AL
。在 AL 中,您可以设置退出代码。
要么(选项 1):
mov ah,4CH
int 21h
或(选项 2)
mov AX,4C00H ; or change 00 to any exit code you want.
int 21h