菜鸟的汇编问题,王爽习题求解
这量题目
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0
start:mov ax,cs
mov ss,ax
mov sp,1ah
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:push ds:
pop cs:
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
我是这么填的debug的时候,看了下内存中的内容和预一样
但执行到push命令前,本来5个0的地方都变成有数了
不过这还好,但push以后,上图画线的地方数字变了,而且原来没变的地方也变了,为什么?
首先你这个答案填错了,亲。运行肯定一定错误。 本帖最后由 霸气外露 于 2013-12-20 01:11 编辑
正确的是,mov ax,cs
mov sp,36
pop cs:
然后你在调试。 这三行让我加哪里,我写的应该没有错,执行的结果是对的。
但是在执行的过程中,修改了原来数据段中的内容。我是这点弄不明白。 本帖最后由 lcwwq 于 2013-12-22 02:59 编辑
我Copy楼主的程序进行调试,结果确实和楼主的现象一样。不过程序执行完成时,结果是正确的。不过按道理0C77:000E这个字单元不应为0,而是原来的0987H。到底是什么原因?是不是这个程序不够完整?严谨?
lcwwq 发表于 2013-12-21 22:42 static/image/common/back.gif
我Copy楼主的程序进行调试,结果确实和楼主的现象一样。不过程序执行完成时,结果是正确的。不过按道理0C77 ...
你也是这样的,至少说明是有规律的~:lol: ryan0632 发表于 2013-12-23 18:40 static/image/common/back.gif
我是打酱油的,鱼C有你更精彩
我看好你哦 本来就是让0:0—0:15单元的内容修改原来程序中的数据啊 ! 你看一下70页 3.19的问题 貌似很想 我感觉是吧寄存器的内容入栈了 - - 不过也不明白 书上说后面会懂 sokou001 发表于 2013-12-28 20:00 static/image/common/back.gif
你看一下70页 3.19的问题 貌似很想 我感觉是吧寄存器的内容入栈了 - - 不过也不明白 书上说后面会懂
谢谢哥们,好像看出点什么,cs,ip栈了,还有什么没看出来. 我跳着看的
你要看到了说明,记录给我留个言,thanks
页:
[1]