(完整word版)微机原理与接口技术(第二版)课后习题答案完整版 下载本文

微机原理与接口技术(第二版) 清华大学出版社

CODE ENDS END START

9. 内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在前。编程序求这两个数的组合的十进制和,并存到以THIRD开始的单元。 答:

DATA SEGMENT

FIRST DD 34341212H SECOND DD 78785656H THIRD DB ?,?,?,?

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA

MOV DS,AX LEA SI,FIRST LEA DI,SECOND LEA BX,THIRD MOV CX,4 CLC AGAIN:

MOV AL,BYTE PTR[SI]

MOV DL,BYTE PTR[DI] ADC AL,DL DAA

MOV BYTE PTR[BX],AL INC SI INC DI INC BX

LOOP AGAIN

JC AA

21

微机原理与接口技术(第二版) 清华大学出版社

MOV BYTE PTR[BX],0 JMP EXIT AA: EXIT:

MOV BYTE PTR[BX],1 MOV AH,4CH INT 21H

CODE ENDS END START

10. 编写一段程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于BUFF缓冲区中。加密表如下:

输入数字: 0,1,2,3,4,5,6,7,8,9; 密码数字: 7,5,9,1,3,6,8,0,2,4。 答:

DATA SEGMENT

MITAB DB '7591368024' CONT EQU $-MITAB BUFF DB 10 DUP (?),'$' YUANWEN DB 10 DUP (?),'$' DATA ENDS

CODE SEGMENT

ASSUME CS∶CODE,DS∶DATA START: MOV AX,DATA MOV DS,AX MOV SI,0 MOV CX,CONT INPUT: MOV

AH,1

INT 21H CMP AL,13 JZ EXIT

AND AL,0FH

MOV YUANWEN[SI] ,AL

22

微机原理与接口技术(第二版) 清华大学出版社

INC SI LOOP INPUT

EXIT : LEA BX,MITAB MOV CX,SI MOV SI,0

JIAMI: MOV AL,YUANWEN[SI] XLAT MITAB

MOV BUFF[SI],AL INC SI LOOP JIAMI

MOV AH, 4CH INT 21H

CODE ENDS

END START

11.试编程序,统计由40000H开始的16K个单元中所存放的字符“A”的个数,并将结果存放在DX中。 答:

DATA SEGMENT

DA1 DB 'A'

BUFF DB 4000H DUP(?)

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,4000H MOV DS,AX MOV BX,0 MOV CX,4000H

FIND: MOV AL,[BX] MOV BL,DA1

23

微机原理与接口技术(第二版) 清华大学出版社

CMP AL,BL JNZ NEXT INC DX NEXT:

INC SI

LOOP FIND MOV AH,4CH INT 21H CODE ENDS END START

12. 在当前数据段(DS),偏移地址为DATAB开始的顺序80个单元中,存放着某班80个同学某门考试成绩。按如下要求编写程序:

(1) 编写程序统计≥90分; 80分~89分; 70分~79分; 60分~69分,<60分的人数各为多少,并将结果放在同一数据段、偏移地址为BTRX开始的顺序单元中。

(2) 试编程序,求该班这门课的平均成绩为多少,并放在该数据段的AVER单元中。 答:

DATA SEGMENT

BUFF DW 80 DUP(?) DA9 DB 0 DA8 DB 0 DA7 DB 0 DA6 DB 0 DA5 DB 0 AVER DB 0 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DS,AX

24