一、读程序题(每小题4分,共20分)
1.执行下列程序段后,(P1)=_______。 MOV P1,#5DH CPL P1.1 CPL P1.2 CLR P1.6 SETB P1.7
2.执行下列程序段后,(A)=_______,(CY)=____。 MOV A,#C5H RL A
3.下列程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。 MOV R0,#7EH MOV 7EH,#0FFH MOV 7FH,#40H 1NC @R0 1NC R0 1NC @R0
4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL SUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)= ____。 5.阅读下列程序,说明其功能。 MOV R0,#data MOV A,@R0 RL A
MOV R1,A RL A RL A
ADD A,R1 MOV @R0,A RET
读程序题(每小题4分,共20分) 1.(P1)=9BH
2.(A)=8BH(或10001011B) (CY)=不影响 3.(R0)=7FH (7EH)=00H (7FH)=41H 4.(PC)=0345H (61H)=25H (62H)=01H 5.(data)×10操作
二、使用简单指令序列完成以下操作(12分) 1.请将片外RAM20H—25H单元清零 2.请将ROM3000H单元内容送R7
使用简单指令序列完成以下操作(12分,每小题6分) 1. MOV R0,#20H MOV R7,#06H
1
CLR A
LOOP:MOVX @R0,A INC R0
DJNZ R7,LOOP 2.MOV DPTR,#3000H CLR A
MOVC A,@A+DPTR
MOV R7,A
三、使用简单指令序列完成以下操作(12分) 1、将20H单元清零 MOV 20H,#00H 或 CLR A MOV 20H, A
2、将片外RAM2000H中的低字节与片内20H中的低字节交换。 MOV DPTR,#2000H XCHD A,@R0
MOV R0,#20H MOVX @DPTR,A MOVX @DPTR,A
3、已知某端口地址为2FFFH,将片内RAM20H的内容写到该端口中。 MOV A, 20H
MOVX DPTR, #2FFFH MOVX @DPTR, A
4、把DPTR的内容压入堆栈 PUSH DPH PUSH DPL
四、读程序(每小题5分,共10分)
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 五、分析程序并写出结果:(共4题,每题5分)
已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后( 40H ) = MOV @R0 , #11H MOV A , R2 ADD A , 20H
MOV PSW , #80H SUBB A , P0 XRL A , #45H MOV 40H , A
2. 已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下: MOV A , @R0
2
MOV R0 , A MOV A , @R0 ADD A , 21H ORL A , #21H RL A MOV R2 , A RET
则执行结束(R0)= (R2)= 3. 执行下面一段程序;
MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A PUSH B POP A POP B
A , B的内容是:(A)= (B)=
4. 设在31H单元存有#23H,执行下面程序: MOV A, 31H ANL A, #0FH MOV 41H, A MOV A, 31H ANL A, #0F0H SWAP A
MOV 42H, A
则(41H)= (42H)= 分析程序并写出结果。 1.(20H)←11H (A)←20H
(A)←(A)+(20) (CY)=1
(A)-(P0)-(CY)→(A)即(A)←00H (A)+45H→(A)即(A)←45H (40H)←45H 2.(A)←((R0)) (A)=36H (R0)←(A) (R0)←36H (A)←((R0)) (A)←34H
(A)←(A)+(21H) 34H+17H=4BH (A)←(A)21H 4BH21H=6BH (A)←D6H (R2)←D6H
(R0)=36H (R2)=D6H 3.(A)=01H (B)=10H
4. (41H)=03H (42H)=02H 五、程序分析题(共20分,每题10分) 1、位地址为M、N、Y,程序如下:
3
MOV C,M ;(M) ➞C ANL C, ;(M) MOV Y,C ;(Y)=(M) MOV C,M ;(M) ➞C ANL C,N ;(M) ORL CY ; MOV Y,C 程序功能表达式:
(Y)=(M)*(/N)+(M)*(N) 2、阅读下列程序并回答问题 CLR C
MOV A,#9AH SUBB A,60H ADD A,61H, DA A MOV 62H,A 请问该程序执行何种操作? 已知初值:(60H)=23H,(61H)=61H,请问运行程序后:(62H)=( 解
操作是单字节BCD码运算,是将 (61H)-(60H)➞62H (2)(62H)=38H
六、程序分析题(共20分,每题10分) 1、程序如下
2506H M5: MOV SP,#58H; 2509H MOV 10H,0FH; 250CH MOV 11H,#0BH; 250FH ACALL XHD; 2511H MOV 20H,11H 2514H M5A: SJMP M5A XHD: PUSH 10H PUSH 11H POP 10H POP 11H RET 问:(1)执行POP10H后堆栈内容? (2)执行M5A:SJMP M5A后,(SP)=? (20H)=?解
执行ACALL指令时:PC+2➞PC:
(SP)+1➞SP PC0~PC7➞(SP) (SP)+1➞SP PC8~PC15➞(SP) 2) 子程序返回时,点地址弹出,SP=58H
所以 (1)执行POP 10H后,堆栈内容如左图所示.
5C 0B 5B 0F
4
)?
5A 25 59 11 58
(2)执行M5A:SJMP M5A后,(SP)=58H, (20H)=0FH
2、解读下列程序,然后填写有关寄存器内容 (1) MOV R1,#48H MOV 48H,#51H
CJNE @R1,#51H,00H JNC NEXT1 MOV A,#0FFH SJMP NEXT2 NEXT: MOV A,#0AAH NEXT2: SJMP NEXT2 累加器 A=( )
(2) MOV A,#0FBH MOV PSW,#10H ADD A,#7FH
若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表: PSW CY AC F0 RS1 RS0 OV F1 P 1 1 0 1 0 0 0 1 (1) MOV R1,#48H ;48H 送 R1
MOV 48H,#51H ;51H送➞(48H)
CJNE @R1,#51H,00H ;(R1)GN #51相比,相等,顺序执行 JNC NEXT1 ;没借位转,NEXT1 MOV A,#0FFH ;有借位,FFH送A SJMP NEXT2
NEXT1 MOV A,#0AAH ;0AAH送A NEXT2 SJMP NEXT2 累加器 A=(0AAH) (2) MOV A,#0FBH
MOV PSW,#10H 00010000送PSW ADD A,#7FH 由 11111011 + 01111111 ____________ 1 01111010
所以,有进位CY=1,C6 ♁ C7=1♁1=0,OV=0; A中有奇数个1,P=1; 有辅助进位位AC=1
若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表: PSW CY AC F0 RS1 RS0 OV F1 P 1 1 0 1 0 0 0 1
5
七、读程序***
1.执行下列程序段中第一条指令后,(1)(P1.7)=__0__ (P1.3)=__0___, (P1.2)=_____0____;执行第二条指令后,(2)(P1.5)=____1_____,(P1.4)=____1_____,(P1.3)=____1_____。 ANL P1,#73H ORL P1,#38H
2.下列程序段执行后,(A)=__0DH(或13)_____,(B)=_11H(或17)_______。 MOV A,#0FBH MOV B,#12H DIV AB
3.下列程序段执行后,(R0)=_7EH___,(7EH)=__FFH__,(7FH)=___3FH___。 MOV R0,#7FH MOV 7EH,#0 MOV 7FH,#40H DEC @R0 DEC R0 DEC @R0
4.已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=__0BH_______,内部RAM(0AH)=__67H_______,(0BH)=___45H______ PUSH DPL PUSH DPH
5.下列程序中注释的数字为执行该指令所需的机器周期数,若单片机的晶振频率为6MHz,问执行下列程序需要多少时间?
MOV R3,#100;1 LOOP:NOP ;1 NOP NOP
DJNZ R3,LOOP ;2 RET ; 2 答:一个机器周期为2μs
执行程序所需时间T=2μs*(5*100+3)=1006μs1ms
6.试阅读下面的程序,指出该程序结束后累加器ACC和寄存器TH0的值,并说明该程序完成了怎样的功能。 ORG 0000H MOV SP,#60H MOV A,#10H MOV TH0,#20H PUSH ACC PUSH TH0 POP ACC POP TH0
END 答:利用堆栈交换了ACC和TH0的内容,(A)=20H,(TH0)=10H
6
7.程序段如下,试说明其功能。 MOV R0,#50H MOV R1,#60H MOV A,@R0 ADD A,@R1 MOV @R0,A INC R0 INC R1
MOV A,@R0 ADDC A,@R1 MOV @R0,A MOV 00H,C
答:双字节无符号数加法。被加数存放在内部RAM的51H、50H单元,加数存放在内部RAM的61H、60H单元,相加的结果存放在内部RAM的51H、50H单元,进位存放在位寻址区的00H位中。
8、已知A = 0F8H,当执行ADD A,#0A9H指令后,PSW中的OV、CY、AC、P各为多少?若是有符号数,A中的结果用十进制表示是多少? 答: OV:0、CY:1、AC:1、P:1 A:-95
9、试问下列程序执行后累加器A和PSW中内容是什么? MOV A, #92H ADD A, #0A4H
答:A=36H ; PSW=84H
7
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务