微机原理陈慈发版习题答案04

第4章习题解答

4.1 画出下列语句中的数据在存储器中的存储情况。 ARRAYB DB 63,63H,‘ABCD’,

3DUP(?),2 DUP(1,3)

ARRAYW DW 1234H,5,‘AB’,‘CD’,?,

2DUP(1,3)

解:

地址 数据 地址 ARRAYB 3FH 63H 41H 42H 43H 44H ? ? ? 01H 03H 01H 03H 34H 12H 05H 00H

4. 2. 程序中数据定义如下:

DATA1 DW ?

DATA2 DB 32DUP(?) DATA3 DD ?

DLENGTH EQU $-DATA1 此时DLENGTH的值是多少? 解:

DLENGTH=38=26H

4. 3. 程序中数据定义如下:

ARRAY DB ‘ABCDEF’ RESULT DB ?

TABLE DW 20 DUP(?)

则执行指令 MOV AX,TYPE RESULT后,AX=?

数据 42H 41H 44H 43H ? ? 01H 00H 03H 00H 01H 00H 03H 00H MOV BX,TYPE TABLE后,BX=? MOV CX,LENGTH TABLE后,CX=? MOV DX,LENGTH ARRAY后,DX=? MOV SI,SIZE TABLE后,SI=? MOV DI,SIZE ARRAY后,DI=?

解:

AX=1; BX=2; CX=20; DX=1; SI=40; DI=1

4. 4. 指令AND AX,7315H AND 0FFH中,两个AND有什么差别?这两个AND操作分别在什么时候执行? 解:

左为助记符,由CPU执行指令时运算; 右为运算符,由汇编程序在汇编时运算。

4. 5. 设BX=1034H,则执行下列指令

MOV AX,BX AND 0FFH MOV CX,BX EQ 1234H

后,AX和CX各为多少?若BX=1234H,则结果如何? 解:

AX=0034H; CX=0000H; AX=0034H;CX=FFFFH

4. 6. 设已知语句为:

ORG 0024H

DATA1 DW 4,12H,$+4

则执行指令MOV AX,DATA1+4后AX的值是多少? 解:

AX=002CH

4. 7. 已知数据定义语句为:

BUFFER DB 16 DUP(O,2DUP(1))

则其中字数据单元内容为0100H的单元数是多少? 解: 16个

4. 8. 要在以DA1为首址的数据区中依次存放下列数据;

‘A’,‘B’,O,0,‘C’,‘D’,0,0 请分别用DB、DW和DD语句实现。 解:

DAT DB ‘A’, ‘B’,0,0,’C’,’D’,0,0 DAT DW ‘BA’,0,’DC’,0 DAT DB ‘BA’,’DC’

4. 9. 试按下列要求在数据段中依次书写各数据定义语句:

(1) 以DA1为首字节的连接存储单元中存放20H个重复的数据序列:2,3, 10 个4,一个7。

(2) DA2为字符串变量,用字变量(DW)设置一字符串;‘STUDENTS’(按 此顺序存放在各单元中)

(3) 用等值语句给符号COUNT赋值以DA1为首址的数据区共占有的字节数,此等值语句必须放在最后一语句。 解:

(1) DAT1 DB 20H DUP (2,3,10 DUP (4),7) (2) DAT2 DW ‘TS’, ‘DU’ ,’NE’,’ST’ (3) COUNT EQU DATA2-DATA1

4. 10. 下面程序段是实现从键盘输入十个一位10进数后累加。最后累加和以非压缩BCD码形式存放在AH(高位)和AL(低位)中。试把程序段中所空缺的指令填上。

XOR BX,BX

LOP: MOV AH,01H ;键盘字符输入

INT 21H

MOV AH,BH ADD AL,BL

MOV BX,AX

解:

MOV CX, 10 AAA

4. 11. 下面程序段的功能是把DA1数据区的数0~9转换为对应的ASCII码。试完善本程序段。 DA1 DB OOH,O1H,02H,03H,04H,05H,06H,07H,08H,09H ASCI DB 10 DUP(?) CUNT=ASCI-DA1

LEA SI,DA1 LEA DI,ADCI

LOP1: MOY AL,[SI]

MOV[DI],AL INC SI INC DI

LOOP LOP1

解:

MOV CX, COUT ADD AL, 30H

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4