微机原理与接口技术 第四章 课后答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章参考答案
1.设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?错误的原因?
⑴MOV BP,AL
⑵MOV WORD_OP1,WORD_OP2
⑶MOV SA VE_WODR,DS
⑷MOV SP,SS:DA TA_WORD[BX][SI]
⑸MOV [BX][SI],2
解:(1)非法。源操作数与目的操作数类型不符。
(2)合法。
(3)合法。
(4)合法。
(5)非法。需说明操作数类型。
2.设V AR1和V AR2为字变量,LAB为标号,
试指出下列指令的错误之处:
⑴ADD V AR1,V AR2
⑵SUB AL,V AR1
⑶JMP LAB[SI]
⑷JNZ V AR1
⑸JMP NEAR LAB
解:(1)两个操作数均为符号地址。
(2)两个操作数的类型不同。
(3)
(4)
(5)
3.画图说明下列语句所分配的存储空间及初始化的数据值。
⑴BYTE_V AR DB ‘BYTE’,12,-12H,3 DUP(0,?,2 DUP(1,2),?)
⑵WORD_V AR DW 5 DUP(0,1,2),?,-5 ‘BY’,’TE’,256H
解:(1)(2)
41H
59H
54H
45H
0CH
F4H
00H
?
01H
02H
01H
02H
00H
?
01H
02H
01H
02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H ??FBH FFH 59H 42H 45H 54H 56H 02H
4.设程序中的数据定义如下:
PARTNO DW ?
PNAME DB 16 DUP(?)
COUNT DD ?
PLENTH EQU $-PARTNO
问PLENTH的值为多少?它表示什么意义?
解:PLENTH的值为22(16H)。表示当前位置与PARTNO之间有22个字节空间。
5.设程序中的数据定义如下:
LNAME DB 30 DUP(?)
ADDRESS DB 30 DUP(?)
CITY DB 15 DUP(?)
CODE_LIST DB 1,7,8,,3,2
⑴用一条MOV指令将LNAME的偏移地址放入AX;
⑵用一条指令将CODE_LIST的头两个字节的内容放入SI:
⑶写一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。
解:(1)MOV AX,OFFSET LNAME
(2)MOV SI,WORD CODE_LIST
(3) CODE_LENGTH EQU $-CODE_LIST
6.对于下面数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
FLDB DB ?
TABLEA DW 20 DUP(?)
TABLEB DB ‘ABCD’
⑴MOV AX,TYPE FLDB
⑵MOV AX,TYPE TABLEA
⑶MOV CX,LENGTH TABLEA
⑷MOV DX,SIZE TABLEA
⑸MOV CX,LENGTH TABLEB
解:(1)AX=1
(2)AX=2
(3)CX=14H
(4)DX=28H
(5)CX=1
7.内存的一个区域中有100个字符是用小写字母表示的,试编写一个程序,把它们转换成大写字母,并送屏幕显示。
解:参考程序如下:
MOV CX,0064H
AA:MOV DL,[SI]
ADD DL,20H
MOV [SI],DL
MOV AH,02H
INT 20H
INC SI
LOOP AA
HLT
8.AX寄存器中有4位压缩方式的BCD码数字,试编写一个程序将4个数字分开,并分别存入BH、BL、CH和CL寄存器中。
……
MOV DX,AX
MOV CL,04H
ROL AX,CL
AND DX,0F0FH
MOV BL,DH
MOV CL,DL
AND AX,0F0FH
MOV BH,AL
MOV CH,AH
……
9.编一段程序,使在用STRING开头的数据区中查找字符串WE,数据区以$符作为结束符号。如查到,给出字符所在地址;如查不到,给出NOT FOUND提示。(假设最多有1个WE字符串)
解:参考程序如下:
DA TA SEGMENT
STRING:DB ‘ABCWE5$’
RE:DB ‘NOT FOUND$’
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
BEGIN: PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DA TA
MOV DS,AX
LEA SI,STRING
AA: MOV AL,[SI]
CMP AL,’$’
JZ NEXT
CMPA AL,’W’
JNZ NEXT1
INC SI
MOV AL,[SI]
CMP AL,’E’
JNZ AA
DEC SI
MOV BX,SI
MOV CL,04H
MOV DH,04H
AA1: ROL BX,CL
MOV DL,BL