鱼C论坛

 找回密码
 立即注册
查看: 1698|回复: 0

编写int9的问题

[复制链接]
发表于 2012-8-8 18:57:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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:[9*4]
        pop ds:[0]
        push es:[9*4+2]
        pop ds:[2]
       
        mov word ptr es:[9*4],offset int9
        mov es:[9*4+2],cs
       
       
       
        call show_a_z       
       
        push ds:[0]
        pop es:[9*4]
        push ds:[2]
        pop es:[9*4+2]
       
        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:[160*12+36*2],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:[12*160+36*2+1]            ;--------------------------------
       
int9_s:
        pushf
        pushf
        pop bx
        and bh,11111100b
        push bx
        popf
        call dword ptr ds:[0]
       
int9_end:
        pop es
        pop bx
        pop ax
        iret                                       
       
       
code ends
end start

最后是关于栈的
看书上用 push  pop的时候
有时候就定义栈  有时候没有定义栈
不定义栈有什么坏处么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-20 13:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表