《微机原理与接口技术》第四章习题集与解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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