鱼C论坛

 找回密码
 立即注册
查看: 1866|回复: 4

把栈中数据逆序怎么会这样

[复制链接]
发表于 2013-4-9 15:53:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. codesg segment
  2.                 dw 0123h,0456h,0789h,0defh,0cbah,0987h
  3.                 dw 0,0,0,0,0,0,0,0,
  4.        
  5. start:        mov ax,cs
  6.                 mov ss,ax
  7.                 mov sp,32
  8.                 mov bx,0
  9.                 mov cx,8
  10.         s:        push cs:[bx]
  11.                 add bx,2
  12.                 loop s
  13.        
  14.                 mov bx,0
  15.                 mov cx,8
  16.         s0:        pop cs:[bx]
  17.                 add bx,2
  18.                 loop s0
  19.                 mov ax,4c00h
  20.                 int 21h
  21. codesg ends
  22. end start
复制代码
这个是照着视屏打的,跟视频改了几次,应该没打错,但是我debug的时候感觉很奇怪
huibian.jpg
这个是之前的
hou.png
这个是运行到最后用d命令出来的
为什么会这样
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-10 08:18:00 | 显示全部楼层
逆序存放,数据出来的就是逆的。
无回帖,不论坛,这才是人道。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-4-10 20:22:59 | 显示全部楼层

奇怪的是原本为0的位置变成了其他的数,还有用来当栈的地址上的数也变成了其他的数,而不是原来放进栈中的数,这些代码中貌似没有对这地址放入其他的数为什么还会这样??
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-10 21:19:36 | 显示全部楼层
虚拟的8086模式,有数据应该是正常的,我认为是这样的
无回帖,不论坛,这才是人道。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-4-10 22:24:08 | 显示全部楼层
思来想去 发表于 2013-4-10 21:19
虚拟的8086模式,有数据应该是正常的,我认为是这样的
无回帖,不论坛,这才是人道。

由0变成其他数字,栈中,原本入栈的数字在出栈后该栈中的内容发生改变.....
那么......推论:进行栈操作的时候会对该地址空间的内容进行改变?
                  还是,有其他程序的操作对这些空间进行了改变??
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-22 08:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表