;*******************
.model small
.code
start:
push ds
sub ax, ax
push ax
……
ret
-----------
采用上述方法返回DOS,条件是先要定义“远过程”。
楼主忽略了这个,所以只能在“段内”进行返回,不能在“段间”返回,就不能回到DOS状态。
定义远过程:
.CODE
BX_OUT PROC FAR ;关键就是这个FAR
push ds
sub ax, ax
push ax
……
……
RET ;这样,即可返回DOS
BX_OUT ENDP
END START
;*******************
因为
push ds
sub ax, ax
push ax
......
ret
构成递归,循环
push ds可以认为是传递参数,但是递归没有出口,实际是死循环,早晚堆栈溢出
用非标准方式返回吧,应该不会出错