sdlghua 发表于 2015-12-28 15:11:42

王爽汇编语言第三版P128

assume cs:codesg
   codesg segment
   dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
       dw 0,0,0,0,0,0,0,0
       
       start: mov ax,cs
              mov ss,ax
                  mov sp,32h
                  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
                  
                  codesg ends
       end start
查看内在内容


按说出栈数据时顺序相反,应为

00 00 00 00 00 00 00 00 00 00 00 00 00 00
87 09 ba 0c ed 0f ef 0d bc 0a 89 07 56 04 23 01
新手提问,请多多包涵。

爱你没错 发表于 2015-12-28 15:50:16

本帖最后由 爱你没错 于 2015-12-28 16:05 编辑

此题的关键是数据段和栈段在同一段内存空间里 顺便说一下你应该吧代码mov sp,32h的H去掉,应该20H=32,而32H就差很远了

sdlghua 发表于 2015-12-28 16:47:31

把mov sp,32H,改为20H后运算 查看cs:0的内容为
d:\try\1.png
debug 全步调试后,查看cs:0的内容为
d:\try\2.png
为什么不是以下结果呢?
00 00 00 00 00 00 00 00 00 00 00 00 00 00
87 09 ba 0c ed 0f ef 0d bc 0a 89 07 56 04 23 01
页: [1]
查看完整版本: 王爽汇编语言第三版P128