第4章习题解答.doc.doc
文本预览下载声明
第4章习题解答
4.1 画出下列语句中的数据在存储器中的存储情况。
ARRAYB DB 63,63H,‘ABCD’,
3DUP(?),2 DUP(1,3)
ARRAYW DW 1234H,5,‘AB’,‘CD’,?,
2DUP(1,3)
解:
地址数据地址数据ARRAYB3FH42H63H41H41H44H42H43H43H ?44H ? ?01H ?00H ?03H01H00H03H01H01H00H03H03H34H00H12H05H00H
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=?
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. 试??下列要求在数据段中依次书写各数据定义语句:
以DA1为首字节的连接存储单元中存放20H个重复的数据序列:2,3, 10 个4,一个7。
DA2为字符串变量,用字变量(DW)设置一字符串;‘STUDENTS’(按 此顺序存放在各单元中)
用等值语句给符号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]
显示全部