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

微机原理与接口技术(第二版)

清华大学出版社

MOV

NEXT1:

MOV INC

LOOP

NEXT1 MOV MOV MOV

NEXT2:

MOV CMP JNZ INC

AH,55H

byte ptr[BX],AH BX

BX,0000H CX,0C000H AL,81H AH, [BX] AH,55H EXIT BX

LOOP NEXT2 MOV MOV

AL,7EH AH,4CH

EXIT:

INT 21H CODE END

ENDS START

6. 在当前数据段 4000H 开始的 128 个单元中存放一组数据, 试编程序将它们顺

序搬移到 A000H 开始的顺序 128 个单元中,并将两个数据块逐个单元进行比

较 ; 若有错将 BL 置 00H; 全对则将 BL 置 FFH ,试编程序。 答:

DATA SEGMENT

ORG 400H

DA1 ORG

DB 128 DUP(?)

0A00H DB

128 DUP(?)

DA2

DATA

ENDS

CODE SEGMENT ASSUME

CS:CODE,DS:DATA,ES:DATA

START: MOV AX,DATA

MOV DS,AX

17

微机原理与接口技术(第二版)

清华大学出版社

LEA SI,DA1

LEA DI,DA2

MOV CX,128

AGAIN:

MOV AL,[SI]

INC SI INC

DI

LOOP

AGAIN LEA

SI, DA1 LEA

DI, DA2 MOV

CX,128

NEXT:

MOV

AL,[SI]

MOV BL,[DI] CMP AL,BL

JNZ

ERROR

INC SI INC DI

MOV

BL,0FFH LOOP

NEXT JMP

EXIT

ERROR: MOV

BL,00H EXIT:

MOV

AH,4CH

INT 21H

CODE ENDS

END START

7. 设变量单元 A、B、C 存放有 3 个数,若 3 个数都不为零,则求 3 个数的和,存

放在 D 中; 若有一个为零,则将其余两个也清零,试编写程序。 答:

DATA

SEGMENT

A

DB ? B

DB

?

18

微机原理与接口技术(第二版)

清华大学出版社

C DB DATA CODE ASSUME

? ENDS

SEGMENT

CS:CODE,DS:DATA

AX,DATA DS,AX A,00H LP1 B,0 C,0 LP4

START: MOV

MOV CMP JNZ MOV MOV JMP

LP1:

CMP B,00H JNZ MOV MOV JMP

LP2 A,0 C,0 LP4

LP2:

CMP C,00H JNZ MOV MOV JMP MOV ADD ADD MOV INT

LP3 A,0 B,0 LP4 AL,A AL,B AL,C AH,4CH 21H

ENDS START

LP3:

LP4:

CODE END

8. 有一个 100 个字节的数据表,表内元素已按从大到小的顺序排列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则结束 ; 否则,按顺序将此元素插入表中适当的位置,并修改表长。

19

微机原理与接口技术(第二版)

清华大学出版社

答:

DATA SEGMENT

BUFF DA1

DB DB

100 DUP(?) (?) DB 0

LENGTH

DATA

ENDS

CODE SEGMENT ASSUME

CS:CODE,DS:DATA

AX,DATA DS,AX SI,0 AL,DA1 CX,100 BUFF[SI],AL EXIT SI

FIND0 DI,99

START: MOV

MOV MOV MOV MOV

FIND0: CMP

JZ

INC

LOOP

MOV

MOV SI,0

COMPARE: CMP BUFF[DI],AL

JG

INSERT

BL,BUFF[DI] BUFF[DI+1],BL DI DI,SI

COMPARE EXIT

BUFF[DI+1],AL LENGTH , 101

AH,4CH

MOV

MOV

DEC

CMP

JNL

JMP

INSERT:

MOV MOV

EXIT: MOV

INT 21H

20