课后习题3、4
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORG 0000H MOV R0,#20H;数据单元首地址 R0,#20H;数据单元首地址 MOV R2,#10H;循环16次 R2,#10H;循环16次 L00:MOV @R0,#00H INC R0 DJNZ R2,L00 SJMP $ END
3-6、试编写程序求出内部RAM20H单元中 试编写程序求出内部RAM20H单元中 的数据含“ 的个数,并将结果存入21H单 的数据含“1”的个数,并将结果存入21H单 元。 ORG 0000H
;记录30H单元内容 记录30H ;循环次数 ;给51H单元赋初始值 51H ;标志位清零 ;R0的内容加1 的内容加1 ;Cy为1,则跳转计数 Cy为
10 i =1
∑ 2i
3-8、题目:试编写程序,计算∑2i (i=0…10), 、题目:试编写程序,计算∑ i=0…10), 并将结果存放在内部RAM的30H单元。 并将结果存放在内部RAM的30H单元。
3-11,已知(A)=83H,(R0)=17H,(17H)=34H.请写出执行 11,已知(A)=83H,(R0)=17H,(17H)=34H.请写出执行 完下列程序后A 完下列程序后A的内容。 ANL A,#17H ORL 17H,A XRL A,@R0 CPL A
(A)=10000011,17H=00010111B =10000011, 执行ANL A,#17H后,(A 执行ANL A,#17H后,(A)=00000011B 执行ORL 执行ORL 17H,A 后,(17H)=00110111B 后,(17H) 执行XRL A,@R0后,(A 执行XRL A,@R0后,(A)=00110100B 执行CPL 后,(A 执行CPL A 后,(A)=11001011B=0CBH
(方法一) ORG 0000H MOV R0,#01H MOV R1,#0AH;循环次数 R1,#0AH;循环次数 MOV B,#02H L00: MOV A,R0 MUL AB MOV B,#02H ADD A,30H MOV 30H,A INC R0 DJNZ R1,L00 SJMP $ END
10 i =1
∑ 2i
3-8、题目:试编写程序,计算∑2i (i=0…10), 、题目:试编写程序,计算∑ i=0…10), 并将结果存放在内部RAM的30H单元。 并将结果存放在内部RAM的30H单元。
(方法二)
ORG 0000H MOV R0,#00H MOV R1,#0BH L00:MOV A,R0 RL A ;左移即乘二 ;左移即乘二 ADD A,30H MOV 30H,A INC R0 DJNZ R1,L00 SJMP $ END 运行结果:(30H) 运行结果:(30H)=6EH
3-2、设A=0FH,R0=30H,内部RAM的(30H) A=0FH,R0=30H,内部 内部RAM的 30H) 0AH,(31H)=0BH,(32H)=0CH,请指出执行下 =0AH,(31H)=0BH,(32H)=0CH,请指出执行下 列程序段之后上述各单元内容的变化。 列程序段之后上述各单元内容的变化。
3-1、MCS-51指令系统主要有哪几种 MCS-51指令系统主要有哪几种 寻址方式?试举例说明。 寻址方式?试举例说明。
直接寻址 寄存器寻址 寄存器间接寻址 位寻址 相对寻址 立即数寻址 变址寻址 MOV R0,20H MOV A,R0 MOV A,@R0 MOV C,20H DJNZ R0,L00 MOV R0,#00H MOVC A,@A+DPTR
MOV MOV MOV MOV MOV
A,@R0 @R0,32H 32H,A R0,#31H A,@R0
;(A)=0AH ;(30H)=0CH ;(32H)=0AH ;R0=31H ;(A)=0BH
3-3请用数据传送指令来实现下列要求的数据 传送R0的内容传送到R1 R0的内容传送到R1
– – – – – – – – – MOV A,R0 MOV R1,A MOV A,20H MOV R0, #30H MOVX A, @R0 MOV R0 , A MOV R0,#30H MOVX A,@R0 MOV 20H,A
内部RAM20H单元内容传送到A 内部RAM20H单元内容传送到A 外部RAM30H单元内容送R0 外部RAM30H单元内容送R0
外部RAM30H单元内容送内部RAM20H单元 外部RAM30H单元内容送内部RAM20H单元
外部RAM1000H单元内容送内部RAM20H单元 外部RAM1000H单元内容送内部RAM20H单元 – MOV DPTR,#1000H – MOVX A,@DPTR – MOV 20H,A – 或:MOV P2,#10H 或:MOV – MOV R0,#00H – MOVX A,@R0 – MOV 20H,A 程序存储器ROM2000H单元内容送R1 程序存储器ROM2000H单元内容送R1 – MOV DPTR,#2000H – MOV A ,#0H – MOVC A,@A+DPTR – MOV R1,A
3-12,编程将内部RAM 20H-2FH中的数据和RAM30H12,编程将内部RAM 20H-2FH中的数据和RAM30H3FH中的数据对换。 3FH中的数据对换。 ORG 0000H MOV R0,#20H ;数据首地址 ;数据首地址 MOV R1,#30H ;数据首地址 ;数据首地址 MOV R2,#10H ;循环次数 ;循环次数 L01:MOV A,@R0 MOV B,@R1 MOV @R0,B MOV @R1,A INC R0 INC R1 DJNZ R2,L01 SJMP $ END
RAM2000H单元内容送外部RAM30H单元 RAM2000H单元内容送外部RAM30H单元
RAM2000H单元内容送外部RAM1000H单元 RAM2000H单元内容送外部RAM1000H单元
3-4、设内部RAM(30H)=5AH,(5AH)=40H, 设内部RAM(30H)=5AH,( ,(5AH)=40H, 40H)=00H,端口P1=7FH,问执行一下指令后, (40H)=00H,端口P1=7FH,问执行一下指令后, 各有关存储单元( R0,R1, 40H, 各有关存储单元(即R0,R1,A,B,P1 ,40H, 30H, 5AH单元 的内容如何。 30H,及5AH单元)的内容如何。 单元)
MOV 21H,#00H MOV A,20H MOV R0,#08H;循环次数 R0,#08H;循环次数 L00:CLR C RLC A;带进位左环移 A;带进位左环移 JC L01;有溢出则跳转 L01;有溢出则跳转 AJMP L02 L01:INC 21H L02:DJNZ R0,L00 SJMP $ END
3-10、设R0内容为32H,A的内容为48H,片内 10、 R0内容为 内容为32H, 的内容为48H, RAM的32H单元内容为 RAM的32H单元内容为80H,40H单元内容为 单元内容为80H,40H单元内容为 08H。 08H。请指出在执行下列程序段后上述各单元内容 的变化。 的变化。 MOV A,@R0 初始:(R0)=32H,(A =48H, 初始:(R0)=32H,(A)=48H, MOV @R0,40H (32H)=80H,(40H)=08H 32H)=80H,(40H) MOV 40H,A 执行 MOV A,@R0,即将32H单元 A,@R0,即将32H单元 MOV R0,#35H 内容送入A,(A 内容送入A,(A)=80H 执行 MOV @R0,40H,即将40H单 @R0,40H,即将40H单 元内容送入32H,(32H) 元内容送入32H,(32H)=08H 执行 MOV 40H,A,即将A中内容 40H,A,即将A 送入40H单元,(40H) 送入40H单元,(40H)=80H 执行MOV R0,#35H,即将立即数 执行MOV R0,#35H,即将立即数 35H送入R0,(R0) 35H送入R0,(R0)=35H
3-9:已知 9:已知 (30H)=38H,(38H)=40H,(40H)=48H,(48H)=90 H MOV A,40H ; A←(40H)即(A)=48H A←(40H)即 MOV R0,A ; R0←(A)即(R0)=48H R0←(A)即 MOV P1,#0F0H ;P1←0F0H即 ;P1←0F0H即(P1)=0F0H MOV @R0,30H ;(R0)←(30H)即 ;(R0)←(30H)即(48H)=38H MOV DPTR,#3848H ;DPTR=3848H MOV 40H,38H ;40H←(38H)即 ;40H←(38H)即(40H)=40H MOV R0,30H ;R0←(30H)即 ;R0←(30H)即(R0)=38H MOV P0,R0 ;P0←(R0)即 ;P0←(R0)即(P0)=38H MOV 18H,#30H ;18H←30H即 ;18H←30H即(18H)=30H MOV A,@R0 ;A←((RO))即 ;A←((RO))即(A)=40H MOV P2,P1 ;P2←(P1)即 ;P2←(P1)即(P2)=0F0H
MOV MOV MOV MOV MOV MOV MOV
R0,#30H ;(R0)=30H A,@R0 ;(A)=5Ah R1,A ;(R1)=5AH @R1,P1 ;(5AH)=7FH A,P1 ;(A)=7FH 40H,#20H ;(40H)=20H 30H,40H ;(30H)=20H
Байду номын сангаас
3-5、试编写程序将内部RAM的 试编写程序将内部RAM的 20H-2FH共16个连续单元清零。 20H-2FH共16个连续单元清零。 个连续单元清零
RAM2000H单元内容送内部RAM20H单元 RAM2000H单元内容送内部RAM20H单元
– – – – – – – – – – – – – MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A MOV P2,#20H MOV R0,#00H MOVX A,@R0 MOV P2,#00H MOV R0,#30H MOVX @R0,A MOV DPTR,#2000H MOVX A,@DPTR MOV DPTR,#1000H MOVX @DPTR,A
3-13、已知(A)=34H,(30H)=4FH, 13、已知( =34H,( ,(30H)=4FH, 求执行ADD 30H后 A=?指出PSW中相应 求执行ADD A 30H后,A=?指出PSW中相应 标志位的情况。 标志位的情况。
执行ADD 30H后,(A =83H; 执行ADD A 30H后,(A)=83H; 此过程有半进位,故PSW.6(AC)位为1 此过程有半进位,故PSW.6(AC)位为1; 83H=10000011B,奇数个1,因此奇偶校验位P 83H=10000011B,奇数个1,因此奇偶校验位P置 1; D6⊕D7=0⊕1=1,溢出标志为OV置1 ; D6⊕D7=0⊕1=1,溢出标志为OV置 其余各位保持初始值0 其余各位保持初始值0。 所以PSW各位状态如下:(PSW) 所以PSW各位状态如下:(PSW)=45H
3-7.试编写程序,查找在内部RAM得30-50H单元中出现FFH的次数,将 7.试编写程序 查找在内部RAM得30-50H单元中出现 试编写程序, 单元中出现FFH的次数 的次数, 查找得结果存入51H单元 单元。 查找得结果存入51H单元。
ORG 0000H 0000H AJMP MAIN MAIN: MAIN: MOV R0, #30H 30H MOV R1, #21H 21H MOV 51H, #00H 51H, 00H CLR C L00: MOV A, #01H 00: 01H ADD A, @R0 @R0 JC L01 AJMP L02 L01: INC 51H 01: 51H L02: INC R0 02: DJNZ R1, L00 SJMP $ END
3-6、试编写程序求出内部RAM20H单元中 试编写程序求出内部RAM20H单元中 的数据含“ 的个数,并将结果存入21H单 的数据含“1”的个数,并将结果存入21H单 元。 ORG 0000H
;记录30H单元内容 记录30H ;循环次数 ;给51H单元赋初始值 51H ;标志位清零 ;R0的内容加1 的内容加1 ;Cy为1,则跳转计数 Cy为
10 i =1
∑ 2i
3-8、题目:试编写程序,计算∑2i (i=0…10), 、题目:试编写程序,计算∑ i=0…10), 并将结果存放在内部RAM的30H单元。 并将结果存放在内部RAM的30H单元。
3-11,已知(A)=83H,(R0)=17H,(17H)=34H.请写出执行 11,已知(A)=83H,(R0)=17H,(17H)=34H.请写出执行 完下列程序后A 完下列程序后A的内容。 ANL A,#17H ORL 17H,A XRL A,@R0 CPL A
(A)=10000011,17H=00010111B =10000011, 执行ANL A,#17H后,(A 执行ANL A,#17H后,(A)=00000011B 执行ORL 执行ORL 17H,A 后,(17H)=00110111B 后,(17H) 执行XRL A,@R0后,(A 执行XRL A,@R0后,(A)=00110100B 执行CPL 后,(A 执行CPL A 后,(A)=11001011B=0CBH
(方法一) ORG 0000H MOV R0,#01H MOV R1,#0AH;循环次数 R1,#0AH;循环次数 MOV B,#02H L00: MOV A,R0 MUL AB MOV B,#02H ADD A,30H MOV 30H,A INC R0 DJNZ R1,L00 SJMP $ END
10 i =1
∑ 2i
3-8、题目:试编写程序,计算∑2i (i=0…10), 、题目:试编写程序,计算∑ i=0…10), 并将结果存放在内部RAM的30H单元。 并将结果存放在内部RAM的30H单元。
(方法二)
ORG 0000H MOV R0,#00H MOV R1,#0BH L00:MOV A,R0 RL A ;左移即乘二 ;左移即乘二 ADD A,30H MOV 30H,A INC R0 DJNZ R1,L00 SJMP $ END 运行结果:(30H) 运行结果:(30H)=6EH
3-2、设A=0FH,R0=30H,内部RAM的(30H) A=0FH,R0=30H,内部 内部RAM的 30H) 0AH,(31H)=0BH,(32H)=0CH,请指出执行下 =0AH,(31H)=0BH,(32H)=0CH,请指出执行下 列程序段之后上述各单元内容的变化。 列程序段之后上述各单元内容的变化。
3-1、MCS-51指令系统主要有哪几种 MCS-51指令系统主要有哪几种 寻址方式?试举例说明。 寻址方式?试举例说明。
直接寻址 寄存器寻址 寄存器间接寻址 位寻址 相对寻址 立即数寻址 变址寻址 MOV R0,20H MOV A,R0 MOV A,@R0 MOV C,20H DJNZ R0,L00 MOV R0,#00H MOVC A,@A+DPTR
MOV MOV MOV MOV MOV
A,@R0 @R0,32H 32H,A R0,#31H A,@R0
;(A)=0AH ;(30H)=0CH ;(32H)=0AH ;R0=31H ;(A)=0BH
3-3请用数据传送指令来实现下列要求的数据 传送R0的内容传送到R1 R0的内容传送到R1
– – – – – – – – – MOV A,R0 MOV R1,A MOV A,20H MOV R0, #30H MOVX A, @R0 MOV R0 , A MOV R0,#30H MOVX A,@R0 MOV 20H,A
内部RAM20H单元内容传送到A 内部RAM20H单元内容传送到A 外部RAM30H单元内容送R0 外部RAM30H单元内容送R0
外部RAM30H单元内容送内部RAM20H单元 外部RAM30H单元内容送内部RAM20H单元
外部RAM1000H单元内容送内部RAM20H单元 外部RAM1000H单元内容送内部RAM20H单元 – MOV DPTR,#1000H – MOVX A,@DPTR – MOV 20H,A – 或:MOV P2,#10H 或:MOV – MOV R0,#00H – MOVX A,@R0 – MOV 20H,A 程序存储器ROM2000H单元内容送R1 程序存储器ROM2000H单元内容送R1 – MOV DPTR,#2000H – MOV A ,#0H – MOVC A,@A+DPTR – MOV R1,A
3-12,编程将内部RAM 20H-2FH中的数据和RAM30H12,编程将内部RAM 20H-2FH中的数据和RAM30H3FH中的数据对换。 3FH中的数据对换。 ORG 0000H MOV R0,#20H ;数据首地址 ;数据首地址 MOV R1,#30H ;数据首地址 ;数据首地址 MOV R2,#10H ;循环次数 ;循环次数 L01:MOV A,@R0 MOV B,@R1 MOV @R0,B MOV @R1,A INC R0 INC R1 DJNZ R2,L01 SJMP $ END
RAM2000H单元内容送外部RAM30H单元 RAM2000H单元内容送外部RAM30H单元
RAM2000H单元内容送外部RAM1000H单元 RAM2000H单元内容送外部RAM1000H单元
3-4、设内部RAM(30H)=5AH,(5AH)=40H, 设内部RAM(30H)=5AH,( ,(5AH)=40H, 40H)=00H,端口P1=7FH,问执行一下指令后, (40H)=00H,端口P1=7FH,问执行一下指令后, 各有关存储单元( R0,R1, 40H, 各有关存储单元(即R0,R1,A,B,P1 ,40H, 30H, 5AH单元 的内容如何。 30H,及5AH单元)的内容如何。 单元)
MOV 21H,#00H MOV A,20H MOV R0,#08H;循环次数 R0,#08H;循环次数 L00:CLR C RLC A;带进位左环移 A;带进位左环移 JC L01;有溢出则跳转 L01;有溢出则跳转 AJMP L02 L01:INC 21H L02:DJNZ R0,L00 SJMP $ END
3-10、设R0内容为32H,A的内容为48H,片内 10、 R0内容为 内容为32H, 的内容为48H, RAM的32H单元内容为 RAM的32H单元内容为80H,40H单元内容为 单元内容为80H,40H单元内容为 08H。 08H。请指出在执行下列程序段后上述各单元内容 的变化。 的变化。 MOV A,@R0 初始:(R0)=32H,(A =48H, 初始:(R0)=32H,(A)=48H, MOV @R0,40H (32H)=80H,(40H)=08H 32H)=80H,(40H) MOV 40H,A 执行 MOV A,@R0,即将32H单元 A,@R0,即将32H单元 MOV R0,#35H 内容送入A,(A 内容送入A,(A)=80H 执行 MOV @R0,40H,即将40H单 @R0,40H,即将40H单 元内容送入32H,(32H) 元内容送入32H,(32H)=08H 执行 MOV 40H,A,即将A中内容 40H,A,即将A 送入40H单元,(40H) 送入40H单元,(40H)=80H 执行MOV R0,#35H,即将立即数 执行MOV R0,#35H,即将立即数 35H送入R0,(R0) 35H送入R0,(R0)=35H
3-9:已知 9:已知 (30H)=38H,(38H)=40H,(40H)=48H,(48H)=90 H MOV A,40H ; A←(40H)即(A)=48H A←(40H)即 MOV R0,A ; R0←(A)即(R0)=48H R0←(A)即 MOV P1,#0F0H ;P1←0F0H即 ;P1←0F0H即(P1)=0F0H MOV @R0,30H ;(R0)←(30H)即 ;(R0)←(30H)即(48H)=38H MOV DPTR,#3848H ;DPTR=3848H MOV 40H,38H ;40H←(38H)即 ;40H←(38H)即(40H)=40H MOV R0,30H ;R0←(30H)即 ;R0←(30H)即(R0)=38H MOV P0,R0 ;P0←(R0)即 ;P0←(R0)即(P0)=38H MOV 18H,#30H ;18H←30H即 ;18H←30H即(18H)=30H MOV A,@R0 ;A←((RO))即 ;A←((RO))即(A)=40H MOV P2,P1 ;P2←(P1)即 ;P2←(P1)即(P2)=0F0H
MOV MOV MOV MOV MOV MOV MOV
R0,#30H ;(R0)=30H A,@R0 ;(A)=5Ah R1,A ;(R1)=5AH @R1,P1 ;(5AH)=7FH A,P1 ;(A)=7FH 40H,#20H ;(40H)=20H 30H,40H ;(30H)=20H
Байду номын сангаас
3-5、试编写程序将内部RAM的 试编写程序将内部RAM的 20H-2FH共16个连续单元清零。 20H-2FH共16个连续单元清零。 个连续单元清零
RAM2000H单元内容送内部RAM20H单元 RAM2000H单元内容送内部RAM20H单元
– – – – – – – – – – – – – MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A MOV P2,#20H MOV R0,#00H MOVX A,@R0 MOV P2,#00H MOV R0,#30H MOVX @R0,A MOV DPTR,#2000H MOVX A,@DPTR MOV DPTR,#1000H MOVX @DPTR,A
3-13、已知(A)=34H,(30H)=4FH, 13、已知( =34H,( ,(30H)=4FH, 求执行ADD 30H后 A=?指出PSW中相应 求执行ADD A 30H后,A=?指出PSW中相应 标志位的情况。 标志位的情况。
执行ADD 30H后,(A =83H; 执行ADD A 30H后,(A)=83H; 此过程有半进位,故PSW.6(AC)位为1 此过程有半进位,故PSW.6(AC)位为1; 83H=10000011B,奇数个1,因此奇偶校验位P 83H=10000011B,奇数个1,因此奇偶校验位P置 1; D6⊕D7=0⊕1=1,溢出标志为OV置1 ; D6⊕D7=0⊕1=1,溢出标志为OV置 其余各位保持初始值0 其余各位保持初始值0。 所以PSW各位状态如下:(PSW) 所以PSW各位状态如下:(PSW)=45H
3-7.试编写程序,查找在内部RAM得30-50H单元中出现FFH的次数,将 7.试编写程序 查找在内部RAM得30-50H单元中出现 试编写程序, 单元中出现FFH的次数 的次数, 查找得结果存入51H单元 单元。 查找得结果存入51H单元。
ORG 0000H 0000H AJMP MAIN MAIN: MAIN: MOV R0, #30H 30H MOV R1, #21H 21H MOV 51H, #00H 51H, 00H CLR C L00: MOV A, #01H 00: 01H ADD A, @R0 @R0 JC L01 AJMP L02 L01: INC 51H 01: 51H L02: INC R0 02: DJNZ R1, L00 SJMP $ END