mIldy__c 发表于 2012-8-8 18:57:29

编写int9的问题

assume cs:code,ds:data

data segment
        dw 0,0
data ends

code segment
start:
        mov ax,data
        mov ds,ax
       
        mov ax,0
        mov es,ax       
        push es:
        pop ds:
        push es:
        pop ds:
       
        mov word ptr es:,offset int9
        mov es:,cs
       
       
       
        call show_a_z       
       
        push ds:
        pop es:
        push ds:
        pop es:
       
        mov ax,4c00h
        int 21h
       
show_a_z:
        push ax
        push es
       
        mov ax,0b800h
        mov es,ax
        mov al,'a'
show_a_z_s:
        mov es:,al
        cmp al,'z'
        je show_a_z_e
        call delay
        inc al
        jmp show_a_z_s
       
show_a_z_e:
        pop es
        pop ax
        ret                                               
       
delay:
        push dx
        push ax
       
        mov ax,0
        mov dx,1000h
delay_s:
        sub ax,1                                                               ;这里一开始我用的是dec运行变死循环为什么
        sbb dx,0
        cmp ax,0
        jne delay_s
        cmp dx,0
        jne delay_s
       
        pop ax
        pop dx
        ret                                               
       
int9:
        push ax
        push bx
        push es
       
        in al,60h
       
        cmp al,1                                                    ;-----------------------------
        jne int9_s
                                                                         ;这里我吧改变颜色的提到int9前面为什么就不变色了呢
        mov ax,0b800h
        mov es,ax
        inc byte ptr es:            ;--------------------------------
       
int9_s:
        pushf
        pushf
        pop bx
        and bh,11111100b
        push bx
        popf
        call dword ptr ds:
       
int9_end:
        pop es
        pop bx
        pop ax
        iret                                       
       
       
code ends
end start

最后是关于栈的
看书上用 pushpop的时候
有时候就定义栈有时候没有定义栈
不定义栈有什么坏处么
页: [1]
查看完整版本: 编写int9的问题