这是什么原因?
本帖最后由 C语言鱼c 于 2014-4-27 15:02 编辑这题的题目是利用栈将程序中定义的数据逆向存放
这是什么原因?
貌似没有错啊
CX=3 说明还有三次循环没有执行啊 数据的确有问题,2楼可能看错了,楼主是先把数据已经存放在cs:00到CS:10 的16个字节中了,按道理元数据应该不会被改变,楼主能把代码贴出来吗,我去测试一下,别老是搞图片。 为之疯狂 发表于 2014-4-27 15:57 static/image/common/back.gif
数据的确有问题,2楼可能看错了,楼主是先把数据已经存放在cs:00到CS:10 的16个字节中了,按道理元数据应 ...
原代码:
assume cs:code
code segment
dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h
dw 0, 0, 0, 0, 0, 0, 0, 0 ;eight
start: mov ax, cs
mov ss, ax
mov sp, 32
mov bx, 0
mov cx, 8
s: push cs:
add bx, 2
loop s
mov bx, 0
mov cx, 8
s0: pop cs:
add bx, 2
loop s0
mov ax, 4c00h
int 21h
code ends
end start
定义 dw 应该定义16 个0, 上面是有h ,下面定义 0的时候没有h , 所以你给的空间应该不对吧?你这样定义的应该是24个字型数据。 楼主顺便看下我的题目吧。 我在书上抄的题目 也郁闷。。 C语言鱼c 发表于 2014-4-27 16:01 static/image/common/back.gif
原代码:
assume cs:code
code segment
我刚测试了一下,发现当 cx=4的时候,他就已经把 cs:f + cs:e这两个字节给修改了,我也不知道为什么,待请高人来回答。
页:
[1]