鱼C论坛

 找回密码
 立即注册
查看: 3563|回复: 15

检测点10.5

[复制链接]
发表于 2013-7-18 10:41:51 | 显示全部楼层 |阅读模式
1鱼币
看图

TM截图20130718104131.png

最佳答案

查看完整内容

应该是没有循环 因为call 是先将后一条指令的偏移入栈 所以0eh 处就是call后一条指令的偏移 也就是说call word ptr ds:[0eh] call的就是inc ax这条指令。 本人也正在学 王爽的 汇编语言。不知道回答的对不对,希望对你有帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-18 10:41:52 | 显示全部楼层
应该是没有循环 因为call 是先将后一条指令的偏移入栈 所以0eh 处就是call后一条指令的偏移
也就是说call word ptr ds:[0eh] call的就是inc ax这条指令。
本人也正在学 王爽的 汇编语言。不知道回答的对不对,希望对你有帮助。

评分

参与人数 1鱼币 +1 收起 理由
Dardy + 1 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-18 19:02:54 | 显示全部楼层
在这里call命令第一次0eh是零  但是把它后面一条指令的偏移进栈了   也就是 inc ax这条指令的偏移放到了0eh,                    所以循环到第二次call的也就是这条指令。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-18 19:58:29 | 显示全部楼层
call 先把 inc ax 偏移地址压栈
然后 跳转到ds:[0eh]执行一句,经过上句的压栈,ds:[0eh]已是inc ax的偏移地址了,所以会执行一句inc ax,再返回Call的下一句执行。

整个过程,inc ax执行的次数,比代码中书写的inc ax数,多一次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-18 22:57:17 | 显示全部楼层
来看看,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-19 02:40:02 | 显示全部楼层
都是高手啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-19 02:41:40 | 显示全部楼层
谁有时间解释下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-19 08:39:17 | 显示全部楼层
不是很懂,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-19 10:45:25 | 显示全部楼层
这段代码,SS段和DS段是同一个段, call word ptr ds:[0eh]执行时,将inc ax这段代码的ip压入栈中,这时(sp)=(sp)-2,执行后,jmp word ptr ds:[0eh],ds:[0eh]=((ss)*16+(sp))=ss:[0eh],所以跳到inc ax继续执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 00:09:45 | 显示全部楼层
厉害啊!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 00:13:01 | 显示全部楼层
能不能解释下图的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-15 10:40:13 | 显示全部楼层
只是把CALL后一句的IP压入栈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-24 22:06:03 | 显示全部楼层
我被这个困惑了好久
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-1-13 13:33:35 | 显示全部楼层
四楼说的不错 不过答案没有多一次,只是将call后面inc ax的IP压入栈中,然后jmp过去跳到栈中找要跳的地址,还是那个call后面Inc ax的IP,又回来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-1-19 21:10:23 | 显示全部楼层
12123
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-10 13:07:07 | 显示全部楼层
assume cs:code
        stack segment   ;定义栈段
        dw 8 dup (0)    ;16个字节
        stack ends
        code segment

        start:  mov ax,stack
                mov ss,ax
                mov sp,16     ;栈初始化
                mov ds,ax     ;数据段和栈段是同一段空间
                mov ax,0       ;ax=0
                call word ptr ds:[0eh];把下一条指令的cs和ip压入栈空间  sp=0eh cs入栈 然后ip入栈
                                       ;call后把cs 和ip还原 等同于call到下一条指令执行
                inc ax      ;ax=1
                inc ax       ;ax=2
                inc ax        ;ax=3

                mov ax,4c00h
                int  21h        ;程序正常结束  ax的值为3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 16:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表