这个汇编代码有问题吗?

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