一、汇编中INT 21H是什么意思?
INT是interupt中断的缩写,INT21H是指DOS的中断调用命令,最常用的包括:01H、07H和08H—从标准输入设备输入字符02H—字符输出03H—辅助设备的输入04H—辅助设备的输出05H—打印输出06H—控制台输入/输出09H—显示字符串0AH—键盘缓冲输入0BH—检测输入状态0CH—清输入缓冲区的输入功能用法如下:MOVAH09HINT21H
二、汇编程序中int 21H的功能是什么?
INT是interupt中断的缩写,INT 21H是指DOS的中断调用命令,最常用的包括:01H、07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH — 键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能用法如下:MOV AH 09HINT 21H
三、用汇编编写INT 1CH(大约每秒中断18.2次)一个中断驻留程序,要求在屏幕的右上角显示1?
这个完全是按照题目要求写的cursor equ 45h
attrib equ 2fh
code segment
assume cs:code,ds:code
start:
jmp go
oldcur dw ?
old1c dw 2 dup(?)
newint1c:
pushf
call dword ptr cs:old1c
push ax
push bx
push cx
push dx
xor bh,bh
mov ah,3
int 10h
mov cs:oldcur,dx
mov ah,2
xor bh,bh
mov dx,cursor
int 10h
mov ah,2ch
int 21h ;读取系统时钟
;-------------------------
;ch = hour
;cl = minute
;dh = second
;dl = 1/100 seconds
;------------------------
push dx
push cx;show hour
pop bx
push bx
call showhour
call showcolon;show minute
pop bx
call showother
call showcolon;show second
pop bx
call showother
mov dx,cs:oldcur
mov ah,2
xor bh,bh
int 10h
pop dx
pop cx
pop bx
pop ax
iretshowhour proc near
push bx
pop ax
shr ax,8
mov bl,10
div bl
;-------------------------
;ax = shang
;dx = yushu
;------------------------
add al,30h
call show
call curmove
mov ax,dx
add al,30h
call show
call curmove
ret
showhour endpshowother proc near
push bx
pop ax
shl ax,8
shr ax,8
mov bl,10
div bl
;-------------------------
;ax = shang
;dx = yushu
;------------------------
add al,30h
call show
call curmove
mov ax,dx
add al,30h
call show
call curmove
ret
showother endp
showcolon proc near
mov al,':'
call show
call curmove
ret
showcolon endpcurmove proc near
push ax
push bx
push cx
push dx
mov ah,3
mov bh,0
int 10h
inc dl
mov ah,2
int 10h
pop dx
pop cx
pop bx
pop ax
ret
curmove endpshow proc near
push ax
push bx
push cx
mov ah,09h
mov bx,attrib
mov cx,1
int 10h
pop cx
pop bx
pop ax
ret
show endpgo:
push cs
pop ds
mov ax,351ch ;取中断向量
int 21h
mov old1c,bx ;保存原中断向量
mov bx,es
mov old1c+2,bx
mov dx,offset newint1c ;置新的中断向量
mov ax,251ch
int 21h
mov dx,offset go
sub dx,offset start
mov cl,4
shr dx,cl
add dx,11h
mov ax,3100h ;结束并驻留
int 21h
code ends
end start
- 相关评论
- 我要评论
-