鱼C论坛

 找回密码
 立即注册
查看: 3100|回复: 3

第六章程序6.3求解

[复制链接]
发表于 2011-7-22 21:40:22 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 哮月苍狼 于 2011-7-25 08:49 编辑

书上128页,程序6.3
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h      (0-f)
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0                                             (10-2f)
start:mov ax,cs
   mov ss,ax
   mov sp,30h
甲鱼老师的视频第二行的DW是8个字
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h      (0-f)
dw 0,0,0,0,0,0,0,0                                   (16-31)
start:mov ax,cs
   mov ss,ax
   mov sp,32h
甲鱼老师说两行DW的大小是(0-F)(16-31),所以SP=32
那按照这种思路书上的程序6.3,他的SP为什么会等于30呢?按甲鱼老师说的,应该等于42吧?
书上下面的讲解是CS:10--CS:2F的内存空间当栈使用,栈空时,SS:SP指向栈底,2E+2=30,所以书上认为SP=30,我就想不明白我一直认为SP应该是42,作者怎么得出30这个结论的?
如果按照作者的思路那么甲鱼老师的第二行DW大小是(10-1F),1E+2=20,那么甲鱼老师所写的程序SP就应该等 于20吧,为什么又会是32呢?
这两个疑问我很是头疼!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-22 22:10:44 | 显示全部楼层
你应该在Debug中仔细看看栈的变化,看看栈的变化对程序的功能有没有影响!{:1_1:}
指向栈底,应该算是一个很标准的做法。但是,标准不代表不能变化………………:lol
为什么一定要给自由的思想附加上“枷锁”呢!:loveliness:
如果,实在是转不过弯来,你应该亲自问问小甲鱼!想多了也没用:Q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-24 18:00:14 | 显示全部楼层
那按照这种思路书上的程序6.3,他的SP为什么会等于30呢?按甲鱼老师说的,应该等于42吧?
这一句请你注意:它是30h,而不是30,加了h表示是十六进制.要用十进制的话应该是48,也不是你说的42.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-24 18:05:53 | 显示全部楼层
书上下面的讲解是CS:10--CS:2F的内存空间当栈使用,栈空时,SS:SP指向栈底,2E+2=30,所以书上认为SP=30,我就想不明白我一直认为SP应该是42,作者怎么得出30这个结论的?
如果按照作者的思路那么甲鱼老师的第二行DW大小是(10-1F),1E+2=20,那么甲鱼老师所写的程序SP就应该等 于20吧,为什么又会是32呢?
这两个疑问我很是头疼!!!!!!

说来说出,产生这几个问题的关键是你没有把十六进制和十进制的转换搞清楚,sp等于30H,不是30
第二行dw的大小是32,那是十进制的32,你看它的后而没加h,你要把它写成20也对,但是要加上h,写成20h.
十六进制的20h不就是十进制的32么?

现在不知你明白了没有?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-28 23:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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