504608832 发表于 2011-10-3 12:09:47

检测点6.1中的 答案的错误之处!!

在检测点6.1 第(2)题中的第二空, 我觉得应该填 26h(即 38) ,并非小甲鱼所出示的24h,原因如下:
因为,第一行定义的 dw 已占了16个字节,第二个dw已占了20个字节 ,所以sp应该是 16+20+2=38(也即26h),所以此题第二空应为:mov sp,26h

另外,小甲鱼在此章的视频中也发现了王爽老师的错误之处,也把其例子出现的这个类似错误修正过来了,我就不明白在做这个习题时,小甲鱼为什么反倒又弄错了呀

嗜血灵异狂 发表于 2011-10-3 12:30:00

本帖最后由 嗜血灵异狂 于 2011-10-3 12:33 编辑

觉得没用   你试试就知道了    编程一下用debug调试   看看是不是你想要的结构      鱼哥说了编程不在于过程   而是结果    只要结果对的    过程只是个人的方式不一样罢了:L    1+1可以直接等于2    可是再加密中为什么人们要把这么简单的算法弄的那么复杂   结果不还是等于2吗?       就是为了不想让别人轻易去解开他的程序

关键是感觉 发表于 2011-10-3 15:31:45

26H=38D
(1)dw 定义 8个字 0-15
(2)DW 定义 10个字 20字节 15+20=35    SP指向栈底 +1
也就是36D 24H
你应该是对栈有所误解!

504608832 发表于 2011-10-4 11:00:20

本帖最后由 504608832 于 2011-10-4 11:03 编辑

楼上的,你错了,sp是每次移两个字节的,不是+1 ,应该是+2,所有最初的位置应该是在26H处,只有当第一次push之后,sp才是24h。
这点很重要!第二版的第128页的例子,原题是 mov sp,30h,小甲鱼在视频时,改成了mov sp,32h,我觉得他改的是正确的。但在后面的实验题却又出现了错误,真不好理解。

topcookie 发表于 2011-10-4 20:17:43

4楼的错了,栈的操作确实按字操作,定义的36个字节,也就是0-35,栈为空的时候sp当然指向36,你把概念弄错了,再看看书上栈的那一节,看看空栈的sp是指向何处的
页: [1]
查看完整版本: 检测点6.1中的 答案的错误之处!!