SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。
13、答: 使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。
使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。 14、答:结果为:(A)=30H (R0)=50H (50H)=00H (51H)=30H 15、答:结果为: (61H)=24H (62H)=10H (30H)=00H (31H)=0FFH DPTR=2410H SP=60H 16、答: 指令 源操作数的寻址方式 执行指令后的结果
MOV A,40H 直接寻址 (A)=50H MOV R0,A 寄存器寻址 MOV P1,#80H 立即寻址 MOV @R0,20H 寄存器间接寻址 MOV DPTR,#2000H 立即寻址 MOV 40H,30H 直接寻址 MOV R0,30H 直接寻址 MOV D0H,R0 直接寻址 MOV 10H,#10H 立即寻址 MOV A,@R0 寄存器间接寻址 MOV P2,P1 寄存器寻址 17、答:(1)R1的内容传送到R0 ; MOV A, R1 MOV R0, A
(2)片外RAM 20H单元内容送R0 ; MOV DPTR, #0020H MOVX A, @DPTR MOV R0, A
(3)片外 RAM 20H单元的内容送片内RAM 20H单元; MOV DPTR, #0020H MOVX A, @DPTR MOV 20H, A
(4)片外RAM 1000H单元的内容送片内 RAM 20H 单元; MOV DPTR, #1000H MOVX A, @DPTR MOV 20H, A (5)ROM 2000H单元的内容送R0单元; MOV A, #00H MOV DPTR, #2000H MOVC A, @A+DPTR MOV R0H, A
(6)ROM 2000H 单元的内容送片内RAM 20H单元; MOV A, #00H MOV DPTR, #2000H MOVC A, @A+DPTR
MOV 20H, A
(7)ROM 2000H单元的内容送片外RAM 20H单元。 MOV A, #00H MOV DPTR, #2000H MOVC A, @A+DPTR MOV DPTR, #0020H MOVX @DPTR, A 18、解: ORG 0000H
LJMP START
(R0)=50H (P1)=80H (50H)=30H (DPTR)=2000H (40H)=40H (R0)=40H (D0H)=40H (10H)=10H (A)=50H (P2)=80H
ORG 0030H START: MOV A,22H ADD A,32H DA A MOV 42H,A MOV A,23H ADDC A,33H DA A MOV 43H,A SJMP $
END
19、解: ORG 0000H
LJMP MAIN ORG 0030H MAIN: MOV R7,#20H MOV R1,#40H MOV DPTR,#3000H LOOP:MOV A,@R1 MOVX @DPTR,A INC R1 INC DPTR DJNZ R7,LOOP SJMP $
END 20、解:
参考程序: ORG 0200H LEN:DATA 20H SUM:DATA 21H BLOCK: DATA 22H CLR A MOV R2,LEN MOV R1,#BLOCK INC R2 SJMP CHECK LOOP: ADD A,@R1 INC R1 CHECK: DJNZ R2,LOOP MOV SUM,A END 20、解: ORG 0000H
LJMP MAIN ORG 0030H MAIN: MOV R0,#30H MOV R1,#00H MOV R2,#00H MOV R3,#07H LP2: MOV A,@R0 ADD A,R2 MOV R2,A JNC LP1 INC R1 LP1: INC R0 DJNZ R3,LP2 MOV R3,#03H LP3: CLR C
A清零 R2 R1 R2←块长+1 A←A+(R1) R1
;;块长度送;块始址送;;;修改数据块指针;存累加和
MOV A,R1 RRC A MOV R1,A MOV A,R2 RRC A MOV R2,A DJNZ R3,LP3 MOV 3AH,R2 SJMP $
END
21、解:参考程序: ORG 0200H
MOV R0,#DATA ;DATA为数据区起始地址 MOV DPTR,#BUFFER ;BUFFER为数据区起始地址 MOV R1,#20H ;最大数据串长 LOOP: MOV A,@R0 ;取数据
SUBB A,#24H ;判是否为 $ 符 JZ LOOP1 INC DPTR INC R0
MOVX @DPTR,A ;数据传送 DJNZ R1,LOOP ;循环控制
LOOP1: RET ;结束 22、解:
参考程序:先判两数是否同号,在同号中判大小,异号中正数为大。 MOV A,20H XRL A,21H
ANL A,#80H ;用于判断符号位
JZ CMP ;A为0,说明符号相同,需要比较转移。 JB 20H.7,BG ;A不为0,两数异号,判20H单元是否为正数 MOV 22H,20H SJMP $
BG: MOV 22H,21H SJMP $
CMP: MOV A,20H ;两数同号,比较大小 CJNE A,21H,GR ;影响进位或借位 GR: JNC AG
MOV 22H,21H SJMP $
MOV 22H,20H SJMP $ 23、解: ORG 0000H
LJMP MAIN ORG 0030H MAIN: MOV R2,#100 MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV DPTR,#2000H LOOP: MOVX A,@DPTR CJNE A,#00H,NET1 INC R3 INC DPTR DJNZ R2,LOOP
SJMP NET3 NET1: JC NET2 INC R4 INC DPTR DJNZ R2,LOOP SJMP NET3 NET2: INC R5 INC DPTR DJNZ R2,LOOP NET3: SJMP $
END 24、解:
参考程序:注意压缩的BCD码为一个字节占两位BCD码。 ORG 0000H
MOV R7,#05H ;R7为转换字节数 MOV R0,#20H ;R0为源操作数地址 MOV R1,#25H ;R1为目的操作数地址 NE: MOV A,@R0
ANL A,#0FH ;先取低位BCD码
ADD A,#30H ;将BCD码转换成ASCⅡ码 MOV @R1,A INC R1 MOV A,@R0
ANL A,#0F0H ;取高位BCD码 SWAP A ;半字节交换
ADD A,#30H ;将高位BCD码转换成ASCⅡ码 MOV @R1,A INC R0 INC R1 DJNZ R7,NE SJMP $
END 25、解: ORG 0000H LJMP MAIN ORG 0030H MAIN: LCALL SUBONE AJMP $
;SUBONE use dptr,a,30h,31h SUBONE: MOV DPTR,#2000H LOOP: MOVX A,@DPTR XRL A,#41H JNZ TT MOV A,30H MOV DPTR,#20A0H MOVX @DPTR,A MOV DPTR,#20A1H MOV A,31H MOVX @DPTR,A RET TT: INC DPTR
MOV 30H,DPH
MOV 31H,DPL
MOV A,31H CJNE A,@00H,LOOP RET END
26、 解 ADDIO: MOV R0,30H
MOV R7,#9 MOV A,@R0 LOOP: INC R0 ADD A,@R0 DJNZ R7,LOOP MOV 30H,A
RET
27、 解: MAIN: MOV A,R3 ;待转换的数送A
MOV DPTR,#TAR ;表首地址送DPTR MOVC A,@A+DPTR ;查ASCII码表 MOV R3,A ;查表结果送R3 RET
TAR: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 28、 解 START: MOV R0,#40H ;数据块首地址送R0
MOV R7,#09H ;比较次数送R7 MOV A,@R0 ;取数送A LOOP: INC R0
MOV 30H,@R0 ;取数送30H CJNE A,30H,NEHT ;(A)与(30H)相比 NEXT: JNC BIE1 (A)≥(30H)转BIR1 MOV A,30H ;(A)<(30H),大数送A
BIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较 MOV 50H,A ;比较结束,大数送50H RET 29、解 P1.0 8013 P1.7 D0 Q0 74LS240
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库单片机习题集(含答案)经典(5)在线全文阅读。
相关推荐: