MOV A, R6 ADDC A, R3 MOV @R0, A INC R0 MOV A, R7 ADDC A, R4 MOV @R0, A RET (1)程序完成什么功能?
(2)假设执行程序前R0=30H,程序执行结束后30H, 31H, 32H中的内容为___________,其中_________H
中存放高字节
(3)执行结束后,CY的内容为 。(10分) 答案 :①程序完成了两个3字节数的求和。
加数(1)在R7 R6 R5中, 加数(2)在R4 R3 R2 ②三个字节中和, 32H。 ③三字节和最高位的进位位。
9. 设(A)=5AH,(R1)=30H, (30H)=E0H,(CY)=1,根据程序填空。(6分)
SWAP A ; (A)=_______ ADD A, #30H ; 寻址方式________ ADDC A, 30H ; (A)=______,寻址方式____ RLC A ; (A)=______ ANL A, 30H ; (A)=______ 答案:A5H
立即数寻址 B5H,直接寻址 6BH 60H
10. ADDIO: MOV R0, 30H MOV R7, #9 MOV A, @R0 LOOP: INC R0 ADD A, @R0 DJNZ R7, LOOP MOV 30H, A RET
(1) 程序完成的是什么功能?
(2) 若把MOV R7,#9改成MOV R7, #4,程序功能有何变化?(10分) 答案 :(1)将片内RAM从30H—39H十个单元中的内容相加,和存在30H中。 (2)不是10个数相加,是30—34H五个数相加。
11. LOOK: MOV 51H,#0 MOV R0,#30H MOV R1, #20H
LOP: MOV A,@R0 CPL A
JNZ LP1 INC 51H LP1: INC R0
DJNZ R1, LOP
RET
(1)R0的作用是什么?
(2)程序结束后51H单元中存放的内容是什么?
(3)若将 JNZ LP1这句变成JZ LP1,程序完成什么功能?(10分) 答案 :(1)数据单元指针。
(2)片内RAM30H—50H单元中内容为FFH单元的个数。
(3)将片内RAM30H—50H单元中内容为非FFH单元的总个数送给51H。
12. 设内RAM (20H)=11001011B, (24H)=01010111B,求依次执行下列 指令后的结果。(6分) LOOP: JB 00H, LP1 ;
JB 26H, LP2 ; 程序跳转到LP1还是LP2?答________ Lp1: MOV A, 20H ; (A)=_____ , 寻址方式是______ CPL A (A)= ______ ADD A, 24H (A)= ______
JZ LP3 ; 执行完此句后,程序跳到LP3还是LP2处? LP2: INC 20H LP3: ┋ 答案:
Lp1
11001011B, 直接寻址 00110100B 10001011B Lp2
13. ORG 2000H TAB: DB 01, 02 DW 03, 04 DS 03H ORG 2200H
MOV DPTR, #TAB MOV A, #02H MOVC A, @A+DPTR
问: (1)请填入存储器2000H~2008H单元的内容。 (2)执行完程序后A中的内容为________。 (3)DPTR是一个______字节的寄存器。(10分) 答案 :
2000H
(2)(A)=00H (3)2
14. START: MOV DPTR, #2010 H
MOV R7, #10H MOV R0, #30H
LOOP: MOVX A, @DPTR MOV @R0, A
04H 00H 00H 00H 02H 00H 03H 00H 01H DEC DPTR INC R0 DJNZ R7, LOOP RET
(1) 程序完成什么功能?
(2) MOVX A, @DPTR这句指令是什么寻址方式? (3) DJNZ R7, LOOP 这句指令的含义?(10分) 答案 :
(1)程序完成将片外RAM2010H单元—2001H单元的内容,依次传送到片内RAM30H—3FH单元中去。 (2)寄存器间接寻址。
(3)判断(R7)-1 是否为0,若为0,结束循环,不为0继续到LOOP那儿循环。
15. 若(A)=78H,(R0)=34H,(34H)=DCH,(56H)=ABH,(cy)=1, 求分别执行下列指令后填空。(6分)
ADDC A,@R0 ; (A)=_______________, 寻址方式是________________ ORL A, #23H ; (A)=_______________,
; 寻址方式是_______________
MOV A, 34H ; (A)=_______________ SWAP A ; (A)=_______________ 答案: 55H, 寄存器间接寻址 77H, 立即寻址 DCH, CDH.
16. MOV A, R0
CPL A JZ LABEL1 INC A JZ LABEL2 LABEL1: INC A
SJMP LOOP LABEL2: DEC A LOOP: RET
问:(1)分析上面一段程序,何时转向LABEL1?何时转向LABEL2? (2)若(R0)=FFH,执行完程序后(A)=_______________H。(10分) 答案 :(1) 当R0 的值为FFH,转向LABEL1,当R0 为00时,转向LABLE2 (2)01H
17. START: MOV R0, #40H MOV R7, #09H MOV A, @R0 LOOP: INC R0 MOV 30H, @R0 CJNE A, 30H, NEXT NEXT: JNC BIEI MOV A, 30H BIEI: DJNZ R7, LOOP MOV 50H, A RET
问:(1)A中暂放_________________。
(2)R7寄存器中保存的数是_________________。
(3)最后50H中存放的是___________________。(10分)
(1)最大
(2)比较的次数,共有9个数与A中的数做比较 (3) 片内RAM 40H~49H中最大的值
18. 已知外RAM(2040H)=50H,ROM(2090H)=96H,内RAM(20H)=85H,试求下列程序依次运行后有关单元的内容。(6分)
MOV DPTR , #2040H ; (DPTR)=_______________
MOVX A, @DPTR ; 寻址方式是_____________,(A)=_____________ MOV A, 20H ; (A)=______________
ANL A, #38H ; (A)=_______________,寻址方式是____________ 答案: 2040H
寄存器间址, 50H 85H
00H 立即寻址
19. CLR C
LOOP1: MOV A, @R0
ADDC A, @R1 DA A
MOV @R0, A INC R0 INC R1