汇编实验15

 

 

assume cs:code

stack segment
    db 128 dup(0)
stack ends

code segment
    start:
        mov ax,stack
        mov ss,ax
        mov sp,128

        push cs
        pop ds
        mov si,offset int9start

        mov ax,0
        mov es,ax
        mov di,204h

        mov cx,offset int9end - offset int9start
        cld
        rep movsb

        push es:[9*4]
        pop es:[200h]
        push es:[9*4+2]
        pop es:[202h]

       cli
        mov word ptr es:[9*4],204h
        mov word ptr es:[9*4+2],0h
        sti

        mov ax,4c00h
        int 21h

    int9start:
            push ax
            push cx
            push es
            push di

            pushf
            call dword ptr cs:[200h]
            in al,60h
            cmp al,1eh+80h
            jne ok

            mov cx,2000
            mov ax,0b800h
            mov es,ax
            mov di,0
        s:
            mov byte ptr es:[di],'A'
            mov byte ptr es:[di+1],2
            add di,2
            loop s

        ok:
            pop di
            pop es
            pop cx
            pop ax
            iret
    int9end:
        nop

code ends
end start

 

 

posted @ 2017-06-21 13:03  cs的蜗牛  阅读(210)  评论(1编辑  收藏  举报