微机原理与接口技术习题集

6、某软件共可接收10个键盘命令(分别为A、B、C、┅、J),完成这10个命令的程序分别为过程P0、P1、┅、P9。编程序从键盘接收命令,并转到相应的过程去执 行。要求用两种方法: (1)用比较、转移指令实现。 (2)用跳转表实现

MOV DS,AX LEA BX,BUF MOV CX,100 MOV AH,0 MOV DH,0 MOV DL,0

;成绩表首址 ;学生人数

;低于60分人数 ;60-89分学生人数 ;90-100分学生人数

AAA1: MOV AL,[BX]

CMP AL, 60 JGE BBB1 INC AH JMP CCC1

;与90比较 ;大于等于转BBB2

;与60比较 ;大于等于转BBB1

7、内存自BUF单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其 中90-100、60-89、60以下者各有多少人,并把结果连续存放到自RESUT开始的单元 (要求画出程序流程图,各段定义完整)。 程序清单:

DATA SEGMENT

;数据段

BBB1: CMP AL,90

;堆栈段

JGE BBB2 INC DL JMP CCC1 INC AH

BUF DB ?,?,… ,? ;定义学生成绩表 RESUT DB ?,?,? ;放置分数段统计值

DATA ENDS STACK SEGMENT

DB 50 DUP(0)

CCC1: INC BX

LOOP AAA1

;修改成绩表位置

STACK ENDS CODE SEGMENT

;堆栈段

;保护DOS

MOV RESUT,AH MOV RESUT+1,DL MOV RESUT+2,DH RET

MAIN ENDP

;存放统计结果

ASSUME CS:CODE,DS:DATA,SS:STACK

MAIN RPOC FAR

PUSH DS XOR AX,0 PUSH AX,0 MOV AX,DATA

CODE ENDS

END

8、编程序一边从键盘上接收字符,一边将其写入指定的文件,字符个数共60。

9

程序清单: DATA SEGMENT

ENGLISH DB ?PRESS RETURN KEY TO EXIT?,ODH,OAH,?$?

BUF DB 60

;第一个字节设的最大长度(含0DH-回车符) DB 0

;第二个字节空出,由DOS最后填实际长度(不含0DH)

DB 61 DUP (0) ;第三字节开始写字符 DB ?$? DATA ENDS

STACK SEGMENT

DW 20 DUP (0)

STACK ENDS CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

BEGIN: MOV AX,DATA MOV DS,AX LEA DX,ENGLISH MOV AH,09H INT 21H LEA DX,BUF MOV AH,0AH INT 21H MOV A

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@)