call指令和ret指令

上代码

assume cs:code,ss:stack
stack segment
    db 16 dup(0)
stack ends

code segment
    s:
        mov bx,16
        ret;return to block clode behind the call
    start:
        mov ax,stack
        mov ss,ax
        mov ax,16
        mov sp,ax
        ;mov ax,ip can't acquire the value of ip as ip can't read & write
        call s; push ip,jmp s,call will save the address of the call to make 
        ;ret return the last line
        mov bx,0h
code ends
end start

call相当于,但是ip不能读不能写,就是不能mov所以有call

push ip push到栈里面为了方便ret可以跳回来,ret 就是读取栈里面的ip跳回来

jmp s 跳到s代码块

 

posted @ 2022-11-27 12:42  Z_Chan  阅读(70)  评论(0编辑  收藏  举报