检测点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:33 编辑
觉得没用 你试试就知道了 编程一下用debug调试 看看是不是你想要的结构 鱼哥说了编程不在于过程 而是结果 只要结果对的 过程只是个人的方式不一样罢了:L 1+1可以直接等于2 可是再加密中为什么人们要把这么简单的算法弄的那么复杂 结果不还是等于2吗? 就是为了不想让别人轻易去解开他的程序 26H=38D
(1)dw 定义 8个字 0-15
(2)DW 定义 10个字 20字节 15+20=35 SP指向栈底 +1
也就是36D 24H
你应该是对栈有所误解!
本帖最后由 504608832 于 2011-10-4 11:03 编辑
楼上的,你错了,sp是每次移两个字节的,不是+1 ,应该是+2,所有最初的位置应该是在26H处,只有当第一次push之后,sp才是24h。
这点很重要!第二版的第128页的例子,原题是 mov sp,30h,小甲鱼在视频时,改成了mov sp,32h,我觉得他改的是正确的。但在后面的实验题却又出现了错误,真不好理解。 4楼的错了,栈的操作确实按字操作,定义的36个字节,也就是0-35,栈为空的时候sp当然指向36,你把概念弄错了,再看看书上栈的那一节,看看空栈的sp是指向何处的
页:
[1]