第3章习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章习题参考答案
3-1 设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?
MOV A,59H ;A=50H
MOV R0,A ;R0=50H
MOV A,#00H ;A=00H
MOV @R0,A ;50H=00H
MOV A,#25H ;A=25H
MOV 51H,A ;51H=25H
MOV 52H,#70H ;52H=70H
A=25H R0=50H 50H=00H 51H=25H
3-2 访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
答:访问外部数据存储器指令有:
MOVX @DPTR,A MOV DPTR,#0100H MOV @DPTR,A
MOVX A,@DPTR MOV DPTR,#0200H MOV A,@DPTR
MOVX A,@Ri MOVX A,@R0
MOVX @Ri,A MOVX @R1,A
访问程序存储器指令有:
MOVC A,@A+PC
MOVC A,@A+DPTR
3-3 设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?
PUSH 30H ;61H=24H
PUSH 31H ;62H=10H SP=62H
POP DPL ;DPL=10H
POP DPH ;DPH=24H SP=60H
MOV 30H,#00H ;30H=00H
MOV 31H,#0FFH ;31H=0FFH
3-4 设(A)=40H,(R1)=23H,(40H)=05H。执行下列两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值?
XCH A,R1 ;A=23H R1=40H
XCHD A,@R1 ;A=25H 40H=03H
3-5 两个四位BCD码数相加,被加数和加数分别存于50H,51H和52H,53H单元中(千位、百位在低地址中,十位、个位在高地址中),和存放在54H,55H和56H中(56H用来存放最高位的进位),试编写加法程序。
ORG 0000H
LJMP START
ORG 0100H
START: MOV A,53H
ADD A,51H
DA A
MOV 55H,A
MOV A,52H
ADDC A,50H
DA A
MOV 56H,C
SJMP $
END
3-6 设(A)=01010101B,(R5)=10101010B,分别写出执行下列指令后结果。
ANL A , R5 ; 00000000B
ORL A , R5 ; 11111111B
XRL A , R5 ; 11111111B
3-7指令SJMP rel中,设rel=60H,并假设该指令存放在2114H和2115H单元中。当该条指令执行后,程序将跳转到何地址?
答: 2116H+60H=2176H
3-8 简述转移指令AJMP addr11、SJMP rel、 LJMP addr16及JMP @A+DPTR的应用场合。
答:AJMP addr11 为2K字节范围内的无条件转跳指令,把程序的执行转移到指定的地址。SJMP rel是无条件转跳指令,执行时在PC加2后,把指令中补码形式的偏移量值加到PC上,并计算
出转向目标地址。转向的目标地址可以在这条指令前128字节到后127字节之间。
LJMP addr16执行这条指令时把指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向指定地址。转移的目标地址可以在64K程序存储器地址空间的任何地方,不影响任何标志。
JMP @A+DPTR 指令的功能是把累加器中8位无符号数与数据指针DPTR中的16位数相加,将结果作为下条指令地址送入PC,利用这条指令能实现程序的散转。
3-9 试分析下列程序段,当程序执行后,位地址00H,01H中的内容将为何值?P1口的8条I/O线为何状态?
CLR C ;CY=0
MOV A,#66H ;A=66H
JC LOOP1
CPL C ;CY=1
SETB 01H ;20H.1=1
LOOP1: ORL C, ACC.0 ;CY=1
JB ACC.2,LOOP2 ;
CLR 00H
LOOP2: MOV P1,A ;P1=01100110B
SJMP $
20H.0=0 20H.1=1 P1=66H
3-10 查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序的特点。
MOV 58H,80H
85(80)(58) 直接寻址字节送直接寻址字节: 汇编时源操作数在目标操作数之前。
MOV 58H,#80H
75(58)(80) 立即数送直接寻址字节: 汇编时目标操作数在原操作数之前。