栈数据有点不明白的地方
hello guys,今天看到王爽汇编程序6.3,我debug了一遍,中间出现了一点小小的问题,百思不得其解,不知道各位是否有知道的。
程序代码:
程序如下:assume cs:codesg //程序的作用是将8个数据入栈 codesg segment dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h dw 0, 0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0 mov ax, cs mov ss, ax mov sp, 30h -->当执行这句的时候原本数据都为0 的栈内,无缘无故多了几个数据 mov bx, 0 mov cx, 8 s: push cs:[bx] add bx, 2 loop s
程序代码:
141D:0032 8ED0 MOV SS,AX -d 141d:0 2f 141D:0000 23 01 56 04 89 07 BC 0A-EF 0D ED 0F BA 0C 87 09 141D:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 141D:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ->未执行 mov sp, 30h -t AX=141D BX=0000 CX=0058 DX=0000 SP=0030 BP=0000 SI=0000 DI=0000 DS=140D ES=140D SS=141D CS=141D IP=0037 NV UP EI PL NZ NA PO NC 141D:0037 BB0000 MOV BX,0000 -d 141d:0 2f 141D:0000 23 01 56 04 89 07 BC 0A-EF 0D ED 0F BA 0C 87 09 141D:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 141D:0020 00 00 00 00 00 00 1D 14-00 00 37 00 1D 14 15 0E ->执行 mov sp, 30h后继续执行push 0123H后
-d 141d:0 2f 141D:0000 23 01 56 04 89 07 BC 0A-EF 0D ED 0F BA 0C 87 09 141D:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 141D:0020 00 00 00 00 1D 14-00 00 37 00 1D 14 15 0E 23 01 -->0123H入栈后,多余的数据都同时向前移动
在朋友机器上调试也会出现这种问题,只是多余的那些数据稍稍变了一下
问题:这几个数据是从何而来,它们的作用又是什么呢?
希望知道的童鞋能不吝赐教~