《微机原理与接口技术》第四章习题集与解答

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题集解答

第五章汇编语言程序设计

1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。

BUF SEGMENT

DAl DW 3456H

DA2 DB 2 DUP(7,8)

BUF ENDS

答:

存储器的分配图

2.对于习题1的定义,请说明下列每条指令执行后的结果。

1、MOV AX,SEG DAl

2、MOV AX,SEG DA2

3、MOV BX,OFFSET DAl

4、MOV BX,OFFSET DA2

5、MOV CX,TYPE DAl

6、MOV CX,TYPE DA2

7、MOV DX,LENGTH DAl

8、MOV DX,LENGTH DA2

9、MOV AX,SIZE DAl ‘

10、MOV AX,SIZE DA2

答:1、(AX)=(DS)

2、(AX)=(DS)+2

3、(BX)=4000H

4、(BX)=4002H

5、(CX)=2

6、(CX)=1

7、(DX)=2

8、(DX)=4

9、(AX)=2

10、(AX)=4

3.已知数据定义如下,请计算变量PL的值是多少?

DATA DB ‘AB’

DATAl DB 10 DUP(?)

PL EQU $-DATA

答:PL=DATA+12-DATA=12

4.已知A=25、B=15、C=4,请计算下列表达式的值。

(1) A × 50+B (2) A MOD C+B

(3)(A+4)×B-3 (4) B/3 MOD 4

(5)A LE B (6) A XOR 50

答:(1) A ×50+B= 25 ×50+15=1250+15=12515

(2) A MOD C+B=25 MOD 4+15=1+15=16

(3)(A+4)×B-3 =(25+4)×15-3 =1500-3=1497

(4) B/3 MOD 4 =15/3 MOD 4 =5 MOD 4 =1

(5)A LE B =25 LE 15 = 0

(6) A XOR 50 = 25 XOR 50 = 43

5.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人

RESULT单元的程序。

答:程序如下:

DATA1 SEGMENT

DATA DW 1234h

COUNT DB 0

DATA1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA1

START: MOV AX,DATA1

MOV DS,AX

MOV AX,DATA

MOV CX,16

LOP: TEST AX,8000H

JNZ NEXT

INC RESULT

NEXT: ROL AX,1

LOOP LOP

INT 3

CODE ENDS

END START

6.已知从数据段TAB单元开始,顺序存放十六进制数0~F的ASCII码,寄存器AL中的高四位二进制数是0、低四位是1。请设计程序:用查表指令(XLAT)将寄存器AL中低四位的十六进制数转换为ASCII码。

答:DATA SEGMENT

TAB DB '0123456789ABCDEF'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA BX,TAB

XLAT

INT 3

CODE ENDS

END START

7.已知从数据段BUF单元开始存放一个三字节的带符号数,请设计对其求补的程序。

答:DATA SEGMENT

BUF DB 97H,87H,9AH

RES DB 3 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA BX,BUF

LEA SI,RES

MOV CX,3

LOP: MOV AL,[BX]

XOR AL,0FFH

MOV [SI],AL

LOOP LOP

CLC

LEA SI,RES

MOV CX,3

LOP1: MOV AL,[SI]

ADC AL,0

MOV [SI],AL

LOOP LOP1

INT 3

CODE ENDS

END START

8.已知从数据段BUF单元开始存放字节型的带符号数X和Y,请设计计算Y=6X+8的程序。

答:DATA SEGMENT

BUF DB 97H,87H ;X=97H和Y=87H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AH,0

MOV AL,BUF

SHL AX,1

MOV BX,AX

SHL AX,1

ADD AX,BX

ADD AX,8

MOV BUF+1,AL

相关文档
最新文档