汇编语言课后习题解答

发布时间 : 星期一 文章汇编语言课后习题解答更新完毕开始阅读

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色) 设置白色背景

联系合同范文客服:xxxxx#qq.com(#替换为@)