汇编中断程序设计

来源:互联网 发布:撞客的科学解释 知乎 编辑:程序博客网 时间:2024/06/06 07:08

题目

2、挂接1CH中断,正计时60秒后退出。要求屏幕显示0-59的秒数。

代码

assume cs:code,ds:datadata segmentoldisr dw ?,?timer db 0count db 0new db 0dh,0ah,"$"data endscode segmentstart:mov ax,data    mov ds,ax    mov ax,0    mov es,ax    mov ax,es:[1ch*4]    mov oldisr[0],ax    mov ax,es:[1ch*4+2]    mov oldisr[2],ax    ;保存原中断    mov word ptr es:[1ch*4],offset isr    mov word ptr es:[1ch*4+2],seg isr     ;设置新中断again:cmp timer, 59    ja exit    jmp againexit:mov ax,oldisr[0]    mov es:[1ch*4],ax    mov ax,oldisr[2]    mov es:[1ch*4+2],ax    mov ah,4ch    int 21hisr proc far    push ax    push bx    push cx    push dx    sti    inc count    cmp count,1000/55    jb s    inc timer       mov count,0    mov al,timer    mov ah,0    mov bh,10    div bh    mov dh,ah    mov dl,al    add dl,30h    mov ah,2    int 21h    mov dl,dh    add dl,30h    mov ah,2    int 21h    lea dx,new    mov ah,9    int 21hs:pushf    call dword ptr oldisr    pop dx    pop cx    pop bx    pop ax      iretisr endpcode endsend start

程序截图
这里写图片描述

2 0
原创粉丝点击