当前位置: 代码迷 >> 汇编语言 >> 用dosbox里debug一步步执行时忽然不执行下一条代码,cs变成0000
  详细解决方案

用dosbox里debug一步步执行时忽然不执行下一条代码,cs变成0000

热度:129   发布时间:2016-05-02 04:25:38.0
用dosbox里debug一步步执行时突然不执行下一条代码,cs变成0000
看书上那个b8000h~bffffh是什么彩色字符。。。。
我就按书上向里面写数据看看能显示不,因为是win8 就按网上装了个dosbox,不知道是不是必须要用dos系统才行。反正就是不显示。。我的代码是这样的:(也不知道写的对不对,刚学好多都不知道。。。)
assume cs:codesg ds:data
data segment
        db 'w',2h
        db 'e',2h
        db 'l',2h
        db 'c',2h
        db 'o',2h
        db 'm',2h
        db 'e',2h
data ends
codesg segment
start:  mov ax,data
        mov ds,ax
        mov bx,0h
        mov ax,0b800h
mov ss,ax                            我用debug一步步执行到这一步那个cs会突然变成0000再执行bosbox窗口就会花
        mov bp,0h
        mov cx,14
      s:mov al,[bx] 
        mov [bp],al
        add bx,1
        add bp,1
loop s
        mov ax,4c00h
        int 21h
codesg ends
end start
------解决思路----------------------
不要用ss段指向显示缓冲区,可以用es,因为debug本身需要占用一点栈空间的。
  相关解决方案