RL A
; 原来(A)=02H,左移一位后(A)=04H
;(B)=04H,
;(4004H)=30H→A,(A)=30H
MOV B,A MOVC
A,@A+DPTR
50H30HPUSH Acc MOV A,B INC
A
52H50H;(SP)=51H,(51H)=(A)=30H
; (A)=04H
; (A)=05H
(SP)+1SPPUSH AccPUSH Acc51H(SP)+1SPPCHPCL50H30H52H51H50H(SP)-1(SP)-1SPSP
MOVC A,@A+DPTR
; (4005H)=50H→A,(A)=50H
PUSH Acc RET
;(52H)=(A)=50H, (SP)=52H
;(PCH)=50H, (SP)=51H, (PCL)=30H, (SP)=50H
ORG 4000H DB
10H,80H,30H,50H,30H,50H
答:(A)=50H,(SP)=50H,(51H)=30H,(52H)=50H,(PC)=5030H *3-11.写出完成如下要求的指令,但是不能改变未涉及位的内容。 (A)把Acc.3,Acc.4, Acc.5和Acc.6清零。 (B)把累加器A的中间4位清零。 (C)把Acc.2和Acc.3置1。 答:(A)ANL A,#87H (B)ANL A,#0C3H (C)ORL A,#0CH
;(A)∧10000111
;(A)∧11000011 ;(A)∨00001100
·9·
*3-12.假定(A)=83H, (R0)=17H, (17H)=34H, 执行以下指令后,(A)=( )。 ANL A,#17H ORL 17H,A XRL A,@R0 CPL A
; 10000011∧00010111=00000011→A,(A)=00000011
;00110100∨00000011=00110111→17H,(17H)=00110111
; 00000011⊕00110111=00110100→A
;(A)=11001011
12答:(A)=0CBH。
=83H, =17H, =34H, 执行以下指令后,= 假定(A)(R0)(17H)(A)( )。ANL A,#17H
; 10000011∧00010111=00000011→A,
;(A)=00000011
ORL 17H,A ;00110100∨00000011=00110111→17H,;(17H)=00110111
00110100 ∨)00000011 00110111 00000011 ⊕)00110111 00110100 10000011∧) 00010111 00000011
XRL A,@R0 ; 00000011⊕00110111=00110100→A
; CPL A
;(A)=11001011
答:(A)=0CBH。
3-13.假设(A)=55H,(R3)=0AAH,在执行指令“ANL A,R3”后,(A)=( ),(R3)=( )。 答:(A)=00H,(R3)=0AAH。
3-14.=507BH,=32H,=50H, (31H)=5FH, (32H)如果(DPTR)(SP)(30H)=3CH,则执行下列指令后,(DPH)=( ), (DPL)=( ), (SP)=( )。
·10·
POP DPH POP DPL POP SP
POP DPHPOP DPLPOP SP3CH5FH50H;(DPH)=3CH, (SP)=31H ;(DPL)=5FH, (SP)=30H ;(SP)=50H
32H(SP)-1SP31H(SP)-1SP30H29H
答:(DPH)=3CH,(DPL)=5FH,(SP)=50H
3-15.假定(SP)=60H, (A)=30H, (B)=70H, 则执行下列指令后,(SP)=( ), (61H)=( ), (62H)=( )。 PUSH Acc PUSH B
PUSH BPUSH Acc70H30H
;(61H)=30H, (SP)=61H
;(62H)=70H, (SP)=62H
62H60H(SP)+1SP61H(SP)+1SP 答:(SP)=62H,(61H)=30H,(62H)=70H。
3-17.对程序存储器的读操作,只能使用( D )。参P49 A.MOV指令
B.PUSH指令
C. MOVX指令
D. MOVC指令
3-18.以下指令中,属于单纯读引脚的指令是( C )。参P59 A. MOV P1,A P1,#0FH.
3-19.为什么对基本型的51子系列单片机,其寄存器间接寻址方式(例如MOV A,@R0)中,规定R0 或R1的内容不能超过7FH,而对增强型的52子系列单片机,R0或R1的内容就不受限制。参P24,参P8答:基本型的51子系列单片机,由于其片内RAM的地址范围为00H—7FH,而80H—FFH为特殊功能寄存器区,而对特殊功能寄存器寻址,只能使用直接寻址方式。对片内RAM寻
B. ORL P1,#0FH
C. MOV C,P1.5 D. ANL
·11·
址,当使用寄存器间接寻址是采用R0或R1作为间接寻址的,因此R0或R1的内容不能超过7FH。增强型的52子系列单片机,片内RAM的地址范围为00H—FFH,因此作为间接寻址寄存器的R0或R1的内容就不受限制。
4-1.说明伪指令的作用。“伪”的含义是什么?常用伪指令有那些?其功能如何?参P70~72
答:伪指令是程序员发给汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在汇编过程中的用来控制汇编过程的命令。所谓“伪”是体现在汇编后,伪指令没有相应的机器代码产生。常用伪指令及其功能如下: ORG(ORiGin)汇编起始地址命令;END(END of assembly)汇编终止命令;EQU(EQUate)标号赋值命令;DB(Define Byte)定义数据字节命令;DW(Define Word)定义数据字命令;DS(Define Storage)定义存储区命令;BIT 位定义命令。
4-2. 解释下列术语:参P72~73
(1)手工汇编 (2)机器汇编 (3)反汇编
答:手工汇编:通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码,再进行调试和运行。这种人工查表“翻译”指令的方法称为“手工汇编”。
机器汇编:借助于微型计算机上的软件(汇编程序)来代替手工汇编。通过在微机上运行汇编程序,把汇编语言源程序翻译成机器代码。
反汇编:将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。
*4-3.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么?
·12·

