汇编语言程序设计教程(第二版)卜艳萍著 下载本文

JZ AGAIN IN AL,56H CMP AL,‘E’ JE EXIT

MOV [DI],AL INC DI

JMP AGAIN

EXIT:MOV AH,4CH INT 21H CODE ENDS

END START

8. 内存单元INT9开始放有一个中断服务程序,它所对应的中断类型号为9。试编写建立

这一中断向量的程序段。 ┇

MOV AX,0

MOV DS,AX ;DS指向向量表的段 MOV SI,9*4

MOV AX,OFFSET INT9 MOV [SI],AX MOV AX,SEG INT9 MOV [SI+2],AX ┇

9. 编写程序段落实现将类型2CH的中断向量指向中断处理程序INT2CH。

CODE SEGMENT ┇

MOV AX,0

MOV DS,AX ;DS指向向量表的段 MOV SI,2CH*4

MOV AX,OFFSET INT2CH MOV [SI],AX

MOV AX,SEG INT2CH MOV [SI+2],AX ┇

INT2CH PROC FAR ┇

STI ;开中断 IRET ;中断返回 INT2CH ENDP CODE ENDS

10. 编写程序实现在循环输出“A~Z”26个大写字母后,使计算机每隔10秒钟响铃一次。

? 先循环输出26个大写字母; ? 再定时10秒,到10秒则响铃;

37

? 定义响铃子程序。

11. 编程实现从COM1口输入一串字符到内存缓冲区的功能。

STACK SEGMENT STACK DW 256 DUP(?) STACK ENDS

DATA SEGMENT

BUFFER DB 30 DUP (?) COUNT DB 20 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA START:MOV AX,DATA MOV DS,AX

MOV SI,OFFSET BUFFER MOV BX,OFFSET COUNT MOV CL,[BX] LOP1:MOV DX,3FDH LOP2:IN AL,DX TEST AL,1 JZ LOP2

MOV DX,3F8H IN AL,DX MOV [SI],AL INC SI

DEC CL JNZ LOP1

MOV AH,4CH

INT 21H CODE ENDS

END START

12. 根据本章讲述的内容,试分析下面一段程序实现的功能。

MOV AX,0 MOV ES,AX

MOV DI,36H * 4

MOV AX,OFFSET INTBUF

STOSW

MOV AX,CS STOSW

该段程序实现置中断向量表的功能,中断向量码为36H。

38