1NC R0 1NC @R0 4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL SUBTRN双字节指令后,(PC)=0345H,(61H)=25H,(62H)=01H。 5.阅读下列程序,说明其功能:(data)×10 MOV R0,#data MOV A,@R0 RL A
MOV R1,A RL A RL A
ADD A,R1 MOV @R0,A RET
1.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?(5分)设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。
(1)MOV A,#48H ;立即寻址(A)=48H (2)ADD A,60H ;直接寻址(A)=4EH (3)ANL A,@R0 ;寄存器间接寻址(A)=09H
2.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(15分) MOV R1,#30H ;(R1)=30H MOV A,#64H ;(A)=64H ADD A,#47H ;(A)= AB,(CY)=0,(AC)=0 DA A ;(A)=11H,(CY)=1,(AC)=1 MOV @R1,A ;(R1)=30H,(30H)=11H 此程序段完成的功能:求两个BCD码数(64H和47H)的和,并将结果放在内部RAM的30H单元。
1、设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)= 0E7H ORL A,#27H ANL A,28H XCHD A,@R0 CPL A
2、设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。 SETB C
ADDC A, 20H (A)= 82H (CY)= 0 (AC)= 1 RLC A (A)= 04H (CY)= 1 (P)= 1
MUL AB (A)= 08H (B)= 00H (OV)= 0 四.阅读并分析程序(28分)
1.2506H M5:MOV SP,#58H 2509H MOV 10H,#0FH 250CH MOV 11H,#0BH
?SP?1?SP,PC7~0?SP??250FH ACALL XHD ;PC+2PC , ??
SP?1?SP,PC?SP??15~8?addr?PC?10~0??MOV 20H,11H
2514H M5A:SJMP M5A XHD:PUSH 10H PUSH 11H POP 10H POP 11H RET 问:(1)执行POP 10H后堆栈内容?SP=5AH (2)执行M5A:SJMP M5A后,(SP)= 58H (20H)= 0FH 2.A程序存储空间表格如下: 地址 内容 2000H 3FH 2001H 06H 2002H 5BH 2003H 4FH 。。。。。 。。。。。 已知:片内RAM的20H中为01H,执行下列程序后(30H)=5BH MOV A,20H INC A
MOV DPTR,#2000H MOVC A,@A+DPTR CPL A
MOV 30H,A SJMP $
3.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40)=20H
MOV A,@R0 MOV @R0,40H MOV 40H,A MOV R0,#35H
问执行程序后,R0=35H A=7FH 4BH=20H 40H=7FH 4.若PSW=00, 执行下列程序后,PSW的各位状态如何?
MOV A,#0FBH MOV PSW,#10H ADD A,#7FH CY 1 AC 1 OV 0 P 1 OF 0 RS1 1 1.(A)=3BH,执行ANL A,#9EH指令后,(A)= 1AH (CY)=不受影响
2.JNZ REL为2B指令,放于1308H,转移目标地址是134AH,求偏移量REL=40H 3.若(A)=C3H,(R0)=AAH,执行ADD A,R0后,(A)= 6DH (CY)= 1 (OV)= 1 (AC)= 0 4.若(A)=50H,(B)=A0H,执行MUL AB后,(A)=00H (B)=32H (CY)总为0 (OV)=1
5.SJMP 0E7H为2B指令,放于F010H,目标地址=EFF9H
1. 已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后( 40H ) =45H MOV @R0 , #11H MOV A , R2 ADD A , 20H MOV PSW , #80H SUBB A , P0 XRL A , #45H MOV 40H , A
结果:(20H)←11H (A)←20H
(A)←(A)+(20) (CY)=1
(A)-(P0)-(CY)→(A)即(A)←00H (A)+45H→(A)即(A)←45H (40H)←45H
2. 已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下: MOV A , @R0
MOV R0 , A
MOV A , @R0 ADD A , 21H ORL A , #21H RL A MOV R2 , A RET
则执行结束(R0)=36H (R2)= D6H 结果:(A)←((R0)) (A)=36H (R0)←(A) (R0)←36H (A)←((R0)) (A)←34H
(A)←(A)+(21H) 34H+17H=4BH (A)←(A)?21H 4BH?21H=6BH (A)←D6H (R2)←D6H
(R0)=36H (R2)=D6H
3. 执行下面一段程序;
MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A PUSH B POP A POP B
A , B的内容是:(A)= 01H (B)=10H 4. 设在31H单元存有#23H,执行下面程序: MOV A, 31H ANL A, #0FH MOV 41H, A MOV A, 31H ANL A, #0F0H SWAP A
MOV 42H, A
则(41H)= 03H (42H)=02H 1.数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。 ORG 1000H
MOV R7,#20H
MOV R0, #30H MOV R1,#60H
LOOP:MOV A,@R0 MOV R1,A INC R0 INC R1
DJNZ R7,LOOP SJMP $ END
2. 将4个单字节数放片内30H~~33H,它们求和结果放在片内40H,41H单元。
ORG 1000H
MOV R7,#04H MOV R0,30H CLR A
MOV 41H,A
LOOP: ADD A,@R0 JNC NEXT
INC 41H
NEXT:INC R0
DJNZ R7,LOOP MOV 40H,A SJMP $
END
3. RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD
码的十位和个位放在累加器A中,百位放在R2中。 ORG 2200H MOV A,40H MOV B,#64H DIV AB
MOV R2,A MOV A,#0AH XCH A,B DIV AB SWAP A ORL A,B SJMP $ END
4. 编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。 ORG 1000H MOV R7,#07H
MOV R0,#40H
LOOP:MOV A,@R0 ANL A,#0FH MOV @R0,A INC R0
DJNZ R7,LOOP SJMP $
END
四、编程题(每小题4分,共20分)
2、已知晶振频率为6MHz,在P1.0引脚上输出周期为500微秒的等宽矩形波,若采用T1中断,工作方式2,试写出中断初始化程序(6分) MOV TMOD, #20H SETB ET1 MOV TL1, #06H SETB TR1 MOV TH1, #06H SJMP $ SETB EA
3.将内部RAM20H为首的16个单元的8位无符号数排序写出程序,并作适当注释 SORT: MOV R0, #20H MOV R7,#07H
超全 - 含案~~~单片机原理及应用期末考试题试卷大全



