专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 汇编语言

call far ptr '标号'的有关问题[答案]

发布时间:2010-06-14 15:52:00 文章来源:www.iduyao.cn 采编人员:星星草
call far ptr '标号'的问题[在线等答案]
为什么ax会是1010?不是1006??求详细解答
难道call far ptr不是执行了push cs,push ip,jmp far ptr???
那如果这么指行的话call far ptr s的cs:1000,ip:3
把cs先扔进栈,后扔ip,那么到了s:pop ax这个时候应该是ip先出来,所以ax=3,接着执行add ax,ax=6接着pop bx,现在
bx=1000,然后执行add ax,bx那么不就是ax=1006???????
求大神解答...在线等答案
Assembly code
内存地址    机器码                      汇编指令
1000:0      b8 00 00                    mov ax,0
1000:3      9a 09 00 00 10              call far ptr s
1000:8      40                          inc ax
1000:9      58                        s:pop ax
                                        add ax,ax
                                        pop bx
                                        add ax,bx


------解决方案--------------------
call far ptr 标号 
相当于进行: 
push cs 
push ip 
jmp far ptr 标号

执行完pop ax后ax=8H,然后
add ax,ax;ax=10H,8H+8H=10H=16(十进制)
pop bx ;bx=1000H
add ax,bx;ax=10H+1000H=1010H
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: