请问一下汇编语言中call和ret的用法
发布网友
发布时间:2022-04-25 12:01
我来回答
共4个回答
热心网友
时间:2024-10-13 11:29
call 和RET都是跳转指令,RET是返回栈中的信息,就是下一条要执行的指令
热心网友
时间:2024-10-13 11:29
;*******************
.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
;*******************
热心网友
时间:2024-10-13 11:30
ret是子程序返回,与call指令一一对应的,返回时程序跳到call的下一条指令。
热心网友
时间:2024-10-13 11:30
call
sub运行完是继续执行call的下一句;
主程序段中的ret是无意义的。一般主程序段会是一个死循环。