首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

x86汇编 为何 mov bx,0 后 bx不等于0?请高手指教

2013-01-17 
x86汇编 为什么 mov bx,0 后 bx不等于0????请高手指教为什么 mov bx,0这条语句执行后bx 13e4 ?????????

x86汇编 为什么 mov bx,0 后 bx不等于0????请高手指教


为什么 mov bx,0;这条语句执行后bx = 13e4 ???????????
assume cs:code,ds:data
data segment
        db 10 dup (0)
data ends
stacksg segment
db 10 dup(0)
stacksg ends

code segment
start:
movax, data
mov ds,ax
mov ax,0b00h
mov es,ax
mov ax,stacksg
mov ss,ax
mov sp,30h
mov cx,3
mov bx,0;这条语句执行后bx = 13e4 ????
mov si,0
mov cx,3

mov ax,4c00h
    int 21h

        
code ends

end start



[解决办法]
呵呵  我也遇到过这个问题

困扰了我好几天  后来终于搞明白了

当我们用debug调试程序的时候 我们用T命令每执行一条指令,debug会产生中断,并把flag、ip、cs中的值入栈

待执行下一条指令时恢复。 你将sp指向30h  指向了代码段 debug的时候 中断 入栈保存 寄存器中的数据 就会覆盖掉原来的代码 。

你把 sp改成10h就可以了。

热点排行