汇编网首页登录博客注册
regex的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2010-01-22 19:29] 原来ret可以和call配合

call的功能是到标号处执行指令, 具体操作分两步
1,sp-2
2,ip+(标号处地址-call指令后第一字节地址)

ret的功能是用栈中数据修改ip的值,操作步骤:
1,pop ip, 弹出当前ip
2,sp+2

有此课件, ret和call实现相反的作用, 这样做个实验
验证一下:
D:\ASM>type 101.asm
assume  cs:code
stack   segment
        db      16 dup (0)
stack   ends
code    segment
        mov ah,4ch   ;【6】
        int 21h
start:  mov ax,stack
        mov ss,ax
        mov sp,10h
        mov ax,0
        mov dx,0
        call s      ;【1】将ip入栈,执行S处指令
        mov dx,bx   ;【4】
        jmp ax      ;【5】
s:      mov bx,1234 ;【2】
        ret         ;【3】将ip出栈, 执行call下面指令

code    ends
end     start
执行顺序如上
评论次数(1)  |  浏览次数(762)  |  类型(默认类型) |  收藏此文  | 

[  游客   发表于  2010-01-25 14:20  ]

程序多用他们配合时间模块化编程,也就是子程序。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码