发布时间 : 星期四 文章《微机原理与接口技术》周何琴课后习题答案更新完毕开始阅读4ecf7112250c844769eae009581b6bd97e19bc3d
ASSUME CS:CODE, DS:DATA, SS:STACKSTART: PUSH DS
MOV AX, DATA MOV DS, AX MOV CX, 4
MOV BX, OFFSET BUF MOV AL, [BX] ST1: INC BX CMP AL, [BX] JBE NEXT NEXT:LOOP ST1
MOV AL, [BX] MOV MIN, AL MOV CL,4
AND AL, 0F0H ROR AL, CL
ADD AL, 30H MOV DL, AL INT 21H
MOV AH, 02H
MOV AL, MIN AND AL, 0FH ADD AL, 30H MOV DL, AL INT 21H
MOV AH, 02H POP DS INT 21H HLTCODE
MOV AH, 4CH
ENDS
END START
18. 某班有20个同学的微机原理成绩存放在LIST开始的单元中,要求编程先从高到低的次序排列好,再求出总分和平均值,分别存放在SUM和AVER开始的单元中。解:
STACK ENDS
DATA SEGMENT
LIST DB 65H,76H,78H,54H,90H,85H,68H,66H,77H,88H SUM DW 0 AVER DB 0
DB 99H, 89H, 79H, 69H,75H,85H,63H,73H,83H,93H
BUF DB 100 DUP (?)
17
DATA ENDS
CODE SEGMENTSTART: PUSH DS
ASSUME CS:CODE,DS:DATA,SS:STACK
MOV AX,DATA MOV DS,AX MOV BX, 19 LP0: MOV SI, DI
MOV DI, OFFSET LIST
MOV CX, BX LP1: MOV AL, [SI] INC SI
CMP AL, [SI] JNC LP2 MOV DL, [SI] MOV [SI], AL LP2: LOOP LP1 DEC BX JNZ LP0
MOV [SI-1], DL
LP3: MOV CX, 20
MOV BX, OFFSET LIST MOV SUM, 0 XOR AX, AX DAA
LP4: ADD AL, [BX] ADC AH, 0 INC BX LOOP LP4
MOV SUM, AX MOV BL, 20H DIV BL DAA ADD AL,0
MOV AVER AL POP DS HLT
CODE ENDS
END START
20. 编程将存放在AL中的无符号二进制数,转化成十六进制数,再转换成ASII码并显示在屏幕上。
解:
18
程序如下:
STACK SEGMENT STACK DB 100 DUP(?)STACK ENDSDATA SEGMENTDATA ENDS
DB 100 DUP(?)CODE SEGMENTSTART: PUSH DS
ASSUME CS:CODE, DS:DATA, SS:STACK
MOV AX, DATA MOV DS, AX MOV DH, ALST1: MOV CL, 4
MOV CH, 02H ROR DH, CL
MOV AL, DH
AND AL, 0FH ADD AL, 30H CMP AL, 39H JBE DISP
ADD AL, 07HDISP: MOV DL, AL INT 21H
MOV AH, 02H DEC CH JNZ ST1 POP DS
MOV AH, 4CH INT 21H HLTCODE ENDS
调试程序如下:
END START
STACK SEGMENT STACK BUF DB 01111000B
DB 100 DUP(?)STACK ENDS
DATA SEGMENTDATA ENDS
DB 100 DUP(?)CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
19
START: PUSH DS
MOV AX, DATA MOV DS, AX MOV AL, BUF MOV DH, ALST1: MOV CL, 4 MOV CH, 02H ROR DH, CL
MOV AL, DH
AND AL, 0FH ADD AL, 30H CMP AL, 39H JBE DISP
ADD AL, 07HDISP: MOV DL, AL INT 21H
MOV AH, 02H DEC CH JNZ ST1 POP DS
MOV AH, 4CH INT 21H HLTCODE ENDS
END START
21. 编写程序,使用三种以上的方法,将存储器中2000H开始的地址单元中的100字节数据复制到3000H开始的存储器地址单元中。
解:
(1)利用通用传送指令MOV
MOV SI,2000H 注意这里如果是标号地址 ,则必须用OFFSET
MOV DI,3000H MOV CX,100
LP1: MOV AL,[SI]
MOV [DI],AL INC SI INC DI LOOP LP1
HLT
MOV CX,100 MOV BX,0
LP0:MOV AL,2000[BX]
MOV 3000[BX],AL INC BX LOOP LP0 HLT
20