| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
关于15章程序单步调试出错 
 
assume cs:code 
 
stack segment 
        db 128 dup (0) 
stack ends 
 
data segment 
        dw 0,0 
data ends 
 
code segment 
start:        mov ax,stack 
                mov ss,ax 
                mov sp,128 
                 
                mov ax,data 
                mov ds,ax 
                 
                mov ax,0 
                mov es,ax 
                 
                push es:[9*4] 
                pop ds:[0] 
                push es:[9*4+2] 
                pop ds:[2] 
                 
                cli 
                mov word ptr es:[9*4],offset int9                        ;调试到这一步就出现调试错误 
                mov es:[9*4+2],cs 
                sti 
                 
                mov ax,0b800h 
                mov es,ax 
                mov ah,'a' 
        s:        mov es:[160*12+40*2],ah 
                call delay 
                inc ah 
                cmp ah,'z' 
                jna s 
                 
                mov ax,0 
                mov es,ax 
                 
                push ds:[0] 
                pop es:[9*4] 
                push ds:[2] 
                pop es:[9*4+2] 
                 
                mov ax,4c00h 
                int 21h 
                 
delay:        push ax 
                push dx 
                mov dx,1000h 
                mov ax,0 
        s1:        sub ax,1 
                sbb dx,0 
                cmp ax,0 
                jne s1 
                cmp dx,0 
                jne s1 
                pop dx 
                pop ax 
                ret 
                 
int9:        push ax 
                push bx 
                push es 
                 
                in al,60h 
                 
                pushf 
                pushf 
                pop bx 
                and bh,11111100b 
                push bx 
                popf 
                call dword ptr ds:[0] 
                 
                cmp al,3bh 
                jne int9ret 
                 
                mov ax,0b800h 
                mov es,ax 
                inc byte ptr es:[160*12+40*2+1] 
                 
int9ret:pop es 
                pop bx 
                pop ax 
                iret 
                 
code ends 
end start 
 |   
 
 
 
 |