第三章 作业参考答案3-10. 己知(A)=7AH,(R0)=34H,(34H)=A5H,请写出分别执行下面各条指令后累加器 A 的内容。 (1)MOV A,R0 ;(A)=34H (2)MOV A,@R0 ;(A)=A5H (3)MOV A,34H ;(A)=A5H (4)MOV A,#34H ;(A)=34H3-12. 1 设(R0)=32H,(A)=48H,片内 RAM 中(32H)=60H,(40H)=61H。请指出在执行下列程序段后上述各单元内容的变化。 MOV A,@R0 ; (A)=(32H)=60H MOV @R0,40H ; (32H)=61H MOV 40H,A ; (40H)=(A)=60H MOV R0,#40H ; (R0)=40H即:执行完程序段后,(R0)=40H, (A)=60H, 片内 RAM 中,(32H)=61H, (40H)=60H3-13 已知(A)=83H,(R0)=47H,(47H)=34H。请写出执行完下列程序段后 A 的内容。 ANL A,47H ;(A)=83H∧34H=00H ORL 47H,A ;(47H)=34H∨00H=34H XRL A,@R0 ;(A)= SWAP A ;(A)=43H 答:执行完程序段后,(A)=43H3-14 14. 说明下段程序执行过程中,SP 的内容及堆栈中内容的改变过程。 MOV SP,#30H ;(SP)=30H MOV 30H,#55H MOV 40H,#66H PUSH 30H ;(SP)=31H, 堆栈区中(31H)=55H PUSH 40H ;(SP)=32H, 堆栈区中(32H)=66H POP 30H ;先将堆栈区中 32H 单元的内容送入 30H 单元,使(30H)=66H, 再使 ;SP 值减 1,即: (SP)=31H POP 40H ;先将堆栈区中 31H 单元的内容送入 40H 单元,使(40H)=55H, 再使 ;SP 值减 1,即: (SP)=30H 最终,(SP)=30H, 内部 RAM 中,(30H)=66H, (40H)=55H. 3-15 编程实现两个 16 位二进制数的减法。设被减数放在 40H、41H 单元中,减数放在 50H、51H单元,差仍存于被减数地址单元中,减数、被减数都是低地址单元存放低 8 位。解:CLC C MOV A, 40H SUBB A, 50HMOV 40H, A MOV A, 41H SUBB A, 51H MOV 41H,A3-16. 编写一 BCD 码拼字程序,将存放在 40H、41H 单元的两个一位十进制数的 BCD 码合并构成一个字节的压缩 BCD 码,并将结果保存在 42H 单元中(高地址单元的 BCD 码放在高 4 位)。分析:设(40H)=XYH, (41H)=WZH, 则,合并结果为(42H)=ZYH, X,Y,W,Z 取值 0~9.解: MOV A, 40H ANL A,#0FH MOV B, A MOV A,41H ANL A, #0FH SWAP A ORL A, B MOV 42H, A 3-17. 把片外数据存储器 4020H 单元中的数据读到累加器中,应用哪几条指令?解:方法 1: MOV DPTR, #4020H 方法 2: MOV P2, #40H MOVX A,@DPTR MOV ...