cs寄存器莫名的改变了。。。。急。。。

villsian 2010-07-11 11:16:00

assume cs:code, ds:data, ss:stack
stack segment
dw 0, 0, 0, 0, 0, 0, 0
stack ends
data segment
dw 0201h, 0403h, 0605h, 0807h, 0a09h, 0c0bh, 0e0dh
data ends
code segment
start: mov ax, stack
mov ss, ax
mov sp, 0eh
mov ax, data
mov ds, ax
mov cx, 7
mov bx, 0
sa: push [bx]
add bx, 2
loop sa
mov cx, 7
mov bx, 0
sb: pop [bx]
add bx, 2
loop sb
mov ax, 4c00h
int 21h
code ends
end start


我用的是xp操作系统,masm5编译的,overlay linker 3.6链接的,用cmd下的debug调试跟踪程序,在运行sa循环第5次的时候,cs寄存器莫名其妙的改变了,结果导致程序运行不正确,这是为啥啊?小弟初学汇编,实在是搞不明白cs为啥会变啊!!!!
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoologist 2010-07-12
  • 打赏
  • 举报
回复
应该是堆栈被占满了,继续压栈后面的代码都被覆盖了
masmaster 2010-07-12
  • 打赏
  • 举报
回复
这样的小程序, 不必定义栈段, 用dos自动分配的空间(128字节)就够啦
masmaster 2010-07-12
  • 打赏
  • 举报
回复
栈还是大点好
zara 2010-07-12
  • 打赏
  • 举报
回复
堆栈太小
mochhk 2010-07-12
  • 打赏
  • 举报
回复
观注中~~~~
太虚野老 2010-07-12
  • 打赏
  • 举报
回复
路过.......
goodider 2010-07-12
  • 打赏
  • 举报
回复
可能是堆栈满了。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧