STAT1:MOV DX,24H
IN AL,DX
TEST AL,1 JZ STAT2 IN AL,24H TEST AL,01H JZ STAT2 IN AL,28H MOV [SI],AL INC SI MOV DX,24H IN AL,24 TEST AL,8 JNZ EXIT
STAT2: IN AL,26H
TEST AL,1 JZ STAT1
IN AL,30H
MOV [DI],AL INC DI IN AL,26H TEST AL,8 JZ STAT1 EXIT:RET
6.设中断类型9的中断处理程序的首地址为INT9PRO,给出为中断类型9设置中断向量的程序段。 答:
MOV AX,0 MOV ES,AX MOV BX,36
MOV AX,OFFSET INT9PRO MOV ES:WORD PTR[BX],AX MOV AX,SEG INT9PRO
MOV ES:WORD PTR [BX+2],AX
7.简述系统功能调用和BIOS中断的作用和一般调用方法。 答:(1) 系统功能调用
作用:设备管理;文件管理和目录操作;其它管理(如内存、时间、日期等管理) 一般调用方法:①功能号→AH ②入口参数→制定寄存器 ③INT 21H (2) BIOS中断调用
作用:驱动系统中所配置的常用外设(即驱动程序),如显示器、键盘、打印机、磁盘
驱动器、通信接口等;开机自检,引导装入;提供时间、内存容量及设备配置情况等参数。
一般调用方法:①功能号→AH ②入口参数→制定寄存器 ③INT N
8.编写一个子程序,用来读入一个按键,并在屏幕上按十六进制的形式显示按键的ASCII
码。
答:
SUB1 PROC NEAR MOV AH,1 INT 21H MOV CH,2 MOV CL,4 MOV BL,AL ROL AL,CL
START: AND AL,0FH
ADD AL,30H CMP AL,3AH JL PRINT ADD AL,7H PRINT: MOV DL,AL MOV AH,2 INT 21H MOV AL,BL DEC CH JNZ START RET SUB1 ENDP
9.编写一个程序,在屏幕的右下角闪烁显示编程者的姓名,显示颜色自定。 答: ESEG SEGMENT
STR DB 'JOE' ;编程者姓名字符串 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,ES:ESEG START:MOV AX,ESEG MOV ES,AX
MOV AL,3 ;选择80*25的彩色文本显示模式 MOV AH,0 ;改变显示模式 INT 10H
MOV BP,OFFSET STR
MOV CX,3 ;要显示字符串的长度 MOV DX,1840H ;字符串的显示位置 MOV BL,8AH ;字符串浅绿色闪烁 MOV AL,0
MOV AH,13H ;显示字符串 INT 10H MOV AH,4CH INT 21H CODE ENDS END START
注:闪烁效果要在全屏方式下才看得出来,改全屏方式用Alt+Enter 10.假设显示器的显示模式设置为12H,编写实现下列功能的程序。
(1) 在屏幕中间从上到下显示一条明亮的蓝色线,线宽为1像素。(2) 在屏幕底下横向画一条绿色线,线宽为2像素。(3) 在屏幕上垂直显示16种颜色,每种颜色宽40像素。(4) 设置屏幕背景为白色,在屏幕中间画一条青色线,线宽为10像素。 答:(1) CODE SEGMENT
ASSUME CS:CODE
START:MOV CX,320 ;显示在中间列 MOV DX,0 ;从第0行开始显示 MOV BL,0
MOV AL,12H ; MOV AH,0 INT 10H
LINE:MOV AH,0CH ; MOV AL,1 ; INT 10H
INC DX ; CMP DX,480 ; JNE LINE MOV AH,4CH INT 21H CODE ENDS END START (2)
CODE SEGMENT
ASSUME CS:CODE START:MOV CX,0
MOV DX,478 ; MOV AL,12H ; MOV AH,0 INT 10H NEXT:CMP DX,480 JE EXIT
MOV CX,0 ; LINE:MOV AH,0CH ; MOV AL,2 INT 10H INC CX CMP CX,640 JNE LINE INC DX JMP NEXT EXIT:MOV AH,4CH INT 21H
显示模式设置为12H(640*480,16色) 写像素点(DX,CX) 蓝色 下一行 显示480行 最后两行显示横线
显示模式设置为12H(640*480,16色) 从第1列到第640列画点成线 写像素(画点)
CODE ENDS END START (3)
CODE SEGMENT
ASSUME CS:CODE START:MOV CX,0 MOV DX,0
MOV SI,0 ;线条显示宽度 MOV BL,0 ;当前线条颜色
MOV AL,12H ; MOV AH,0 INT 10H
NEXT:CMP BL,16 ; JE EXIT MOV DX,0 MOV SI,0 LINE:MOV AH,0CH MOV AL,BL INT 10H INC DX CMP DX,480 JNE LINE MOV DX,0 INC CX INC SI CMP SI,40 JNE LINE INC BL JMP NEXT EXIT:MOV AH,4CH INT 21H CODE ENDS END START (4)
CODE SEGMENT
ASSUME CS:CODE START:MOV CX,0
MOV DX,235 ; MOV AL,12H ; MOV AH,0 INT 10H MOV AH,0BH MOV BH,0
MOV BL,15 ;
显示模式设置为12H(640*480,16色) 显示16种颜色线条 从235行到245行显示青色线
显示模式设置为12H(640*480,16色) 设置白色背景
相关推荐: