微机原理课后答案1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 本章作业:(带答案)
1、试分别说明下列指令中源操作数和目的操作数采用的寻址方式:
答案:
目的操作数源操作数(1)MOV AX,0FFFFH 寄存器立即
(2)MOV ES,AX 寄存器寄存器
(3)XOR CL,[100H] 寄存器直接
(4)ADD [SI],DX 寄存器间寄存器(5)MOV ES:[2000H],CL 直接寄存器
(6)SUB [BX+SI],1 基+变立即
(7)ADC AX,[BX+SI+10H] 寄存器相对基+变(8)PUSH DS 隐含寄存器(9)CLD 隐含
(10)CMP [BP+DI],CL 基+变寄存器
2、若(BX)=1123H,(SI)=1968H,位移量=0313H,(DS)=1971H,试确
定由这些寄存器和下列寻址方式产生的有效地址和物理地址:
答案:
EA 物址(1)直接寻址;0313H 19A23H (2)用BX的寄存器间接寻址;1123H 1A833H (3)用BX的寄存器相对寻址;1436H 1AB46H (4)用BX和SI的基址变址寻址;2A8BH 1C19BH (5)用BX和SI的相对基址加变址寻址。2D9EH 1C4AEH 3、连续执行以下指令,并在空格中填写执行指令的结果。
答案:
MOV AX,2060H AL=60H AH=20H CF=
MOV DS,AX DS=2060H AH=20H CF=
ADD AL,AH AL=80H AH=20H CF=0
INC AX AL=81H AH=20H CF=0
MOV DX,512 DL=00H DH=02H CF=0
SUB AX,DX AL=81H AH=1EH CF=0
4、编写程序实现下述功能:
答案:
(1)将BX寄存器的低8位清零,其余位不变。AND BX , 0FF00H
(2)将DL寄存器的最高位置1,其余位不变。OR DL , 80H
(3)将CL寄存器的高4位保持不变,低4位取反。XOR CL , 0FH
(4)测试CX中的最低位,当最低位为0时将AL置1,否则AL置0。
答案:
TEST CX ,01H
JZ L1
MOV AL ,0
HLT
L1: MOV AL , 1
HLT
(5)测试SI,如果SI为奇数将AL置1,否则AL置0。
答案:
TEST SI ,01H
JNZ L1
MOV AL ,0
HLT
L1: MOV AL , 1
HLT
本章典型例题分析:
【例1】若从0200H单元开始有100个数,编一个程序检查这些数,正数保持不变,负数都取补后送回。
DA TA SEGMENT
ORG 0200H
STRING DB 4 DUP (-55,5 DUP(6,-10,-8,9),2 DUP(-4,0))
DA TA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACK
START PROC FAR
BEGIN: PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV ES, AX
MOV CX, 100
LEA SI, STRING
AGAIN: MOV AL, [SI]
AND AL, AL
JNS OVER ;AL>0,跳至OVER
NEG AL ;AL<0,对AL求补
OVER: MOV [SI], AL
INC SI
LOOP AGAIN
INT 3
RET
START ENDP
CODE ENDS
END BEG
1.本章作业(带答案):
1、计算下列程序分别执行后AX寄存器的内容。
(1)MOV AX,0
MOV BX,3456H
TEST BX,1000H
JZ NEXT 答案:
INC AX
NEXT:HLT (AX) = 1
(2)MOV AX,0
XOR BX,BX
AGAIN:INC BX
ADD AX,BX
CMP BX,5
JB AGAIN
HLT (AX) =((((( 0+1) + 2 ) + 3 ) + 4 ) + 5 ) = 15 (3)MOV AL,0FFH
CBW
INC AX
INC AX
XCHG AH,AL
SHR AH,1
RCR AL,1
HLT (AX) = 0080H
(4)MOV AX,0
MOV BX,1234H
MOV CX,16
AGAIN:
SHL BX,1
JNC NEXT
INC AX
NEXT:LOOP AGAIN
HLT 检测1的个数(AX) = 5
2、若在自2000H单元开始有一个1000个字节的数据块,要把它传送到自2200H 开始的存储区中去,用以下三中方法,分别编制程序:
(1)不用串操作指令。
(2)用单个传送的串操作数据传送指令。
(3)用带重复前缀的串操作数据传送指令。
程序如下:
DATA SEGMENT
ORG 2000H
N1 DB n1,n2,…n1000
N2 EQU 2000H+1000–1
CON EQU 1000
DATA ENDS
STACK SEGMENT STACK ‘STACK’
DW 100DUP(?)