鱼C论坛

 找回密码
 立即注册
查看: 1443|回复: 0

10-5。2如何用字节来看。

[复制链接]
发表于 2014-9-9 12:16:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
2)下面的程序执行后,ax中的数值为多少?
assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov word ptr ss:[0],offset s
mov ss:[2],cs
call dword ptr ss:[0]
nop
s: mov ax,offset s
sub ax,ss:[0cH]
mov bx,cs
sub bx,ss:[0eH]
mov ax,4c00h
int 21h
code ends
end start

解:ax=1,bx=0

这个题我看指令再配上自己画的栈图得出来了答案,可在别处看有人用更简单的方法解出来的。
我复制下那人如何算出的,不过我实在没想明白他怎么算的。
“对于这道题,我们不需要了解那么多的某条指令占用多少个字节,只需要了解
call dword ptr ss:[0]的功能就OK,
显然入栈的(ip)是下一条指令nop的ip,而nop占用1个字节,那么nop的下一条指令
也就是s:mov ax 0ffset s的(ip)比Nop大于1个字节,则mov ax offset s中的(ax)比刚刚入栈中(ip)=ss:[0ch]大于1
那么(ax)=1
bx同理了,
这个分析只是本人的思路 ”
能看懂他这样方法能详细说下可以吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 02:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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