汇编中INT 21H是什么意思?

203 2024-03-03 17:01

一、汇编中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

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片