课后习题3、4PPT课件.ppt

上传人:rrsccc 文档编号:9539210 上传时间:2021-03-04 格式:PPT 页数:27 大小:167KB
返回 下载 相关 举报
课后习题3、4PPT课件.ppt_第1页
第1页 / 共27页
课后习题3、4PPT课件.ppt_第2页
第2页 / 共27页
课后习题3、4PPT课件.ppt_第3页
第3页 / 共27页
课后习题3、4PPT课件.ppt_第4页
第4页 / 共27页
课后习题3、4PPT课件.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《课后习题3、4PPT课件.ppt》由会员分享,可在线阅读,更多相关《课后习题3、4PPT课件.ppt(27页珍藏版)》请在三一文库上搜索。

1、1,3-1、MCS-51指令系统主要有哪几种寻址方式?试举例说明。,直接寻址MOV R0,20H 寄存器寻址MOV A,R0 寄存器间接寻址MOV A,R0 位寻址MOV C,20H 相对寻址DJNZ R0,L00 立即数寻址MOV R0,#00H 变址寻址MOVC A,A+DPTR,2,3-2、设A=0FH,R0=30H,内部RAM的(30H)0AH,(31H)=0BH,(32H)=0CH,请指出执行下列程序段之后上述各单元内容的变化。,MOV A,R0 ;(A)=0AH MOV R0,32H ;(30H)=0CH MOV 32H,A ;(32H)=0AH MOV R0,#31H ;R0=3

2、1H MOV A,R0 ;(A)=0BH,3,3-3请用数据传送指令来实现下列要求的数据传送,R0的内容传送到R1 MOV A,R0 MOV R1,A 内部RAM20H单元内容传送到A MOV A,20H 外部RAM30H单元内容送R0 MOV R0, #30H MOVX A, R0 MOV R0 , A 外部RAM30H单元内容送内部RAM20H单元 MOV R0,#30H MOVX A,R0 MOV 20H,A,4,外部RAM1000H单元内容送内部RAM20H单元 MOV DPTR,#1000H MOVX A,DPTR MOV 20H,A 或:MOV P2,#10H MOV R0,#00

3、H MOVX A,R0 MOV 20H,A 程序存储器ROM2000H单元内容送R1 MOV DPTR,#2000H MOV A ,#0H MOVC A,A+DPTR MOV R1,A,5,RAM2000H单元内容送内部RAM20H单元 MOV DPTR,#2000H MOVX A,DPTR MOV 20H,A RAM2000H单元内容送外部RAM30H单元 MOV P2,#20H MOV R0,#00H MOVX A,R0 MOV P2,#00H MOV R0,#30H MOVX R0,A RAM2000H单元内容送外部RAM1000H单元 MOV DPTR,#2000H MOVX A,DP

4、TR MOV DPTR,#1000H MOVX DPTR,A,6,3-4、设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行一下指令后,各有关存储单元(即R0,R1,A,B,P1 ,40H,30H,及5AH单元)的内容如何。,MOV R0,#30H ;(R0)=30H MOV A,R0 ;(A)=5Ah MOV R1,A ;(R1)=5AH MOV R1,P1 ;(5AH)=7FH MOV A,P1 ;(A)=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H,7,3-5、试编写程序将内部RAM的2

5、0H-2FH共16个连续单元清零。,ORG 0000H MOV R0,#20H;数据单元首地址 MOV R2,#10H;循环16次 L00:MOV R0,#00H INC R0 DJNZ R2,L00 SJMP $ END,8,3-6、试编写程序求出内部RAM20H单元中的数据含“1”的个数,并将结果存入21H单元。,ORG 0000H MOV 21H,#00H MOV A,20H MOV R0,#08H;循环次数 L00:CLR C RLC A;带进位左环移 JC L01;有溢出则跳转 AJMP L02 L01:INC 21H L02:DJNZ R0,L00 SJMP $ END,9,3-7

6、.试编写程序,查找在内部RAM得3050H单元中出现FFH的次数,将查找得结果存入51H单元。,ORG 0000H AJMP MAIN MAIN: MOV R0, #30H;记录30H单元内容 MOV R1, #21H;循环次数 MOV 51H, #00H ;给51H单元赋初始值 CLR C;标志位清零 L00: MOV A, #01H ADD A, R0;R0的内容加1 JC L01 ;Cy为1,则跳转计数 AJMP L02 L01: INC 51H L02: INC R0 DJNZ R1, L00 SJMP $ END,10,3-8、题目:试编写程序,计算2i (i=010),并将结果存放

7、在内部RAM的30H单元。,(方法一) ORG 0000H MOV R0,#01H MOV 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,11,3-8、题目:试编写程序,计算2i (i=010),并将结果存放在内部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,

8、L00 SJMP $ END 运行结果:(30H)=6EH,12,3-9:已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,MOV A,40H ; A(40H)即(A)=48H MOV R0,A ; R0(A)即(R0)=48H MOV P1,#0F0H ;P10F0H即(P1)=0F0H MOV R0,30H ;(R0)(30H)即(48H)=38H MOV DPTR,#3848H ;DPTR=3848H MOV 40H,38H ;40H(38H)即(40H)=40H MOV R0,30H ;R0(30H)即(R0)=38H MOV P0,R0 ;P0(R0

9、)即(P0)=38H MOV 18H,#30H ;18H30H即(18H)=30H MOV A,R0 ;A(RO)即(A)=40H MOV P2,P1 ;P2(P1)即(P2)=0F0H,13,3-10、设R0内容为32H,A的内容为48H,片内RAM的32H单元内容为80H,40H单元内容为08H。请指出在执行下列程序段后上述各单元内容的变化。MOV A,R0MOV R0,40HMOV 40H,AMOV R0,#35H,初始:(R0)=32H,(A)=48H,(32H)=80H,(40H)=08H 执行 MOV A,R0,即将32H单元内容送入A,(A)=80H 执行 MOV R0,40H,

10、即将40H单元内容送入32H,(32H)=08H 执行 MOV 40H,A,即将A中内容送入40H单元,(40H)=80H 执行MOV R0,#35H,即将立即数35H送入R0,(R0)=35H,14,3-11,已知(A)=83H,(R0)=17H,(17H)=34H.请写出执行完下列程序后A的内容。 ANL A,#17H ORL 17H,A XRL A,R0 CPL A,(A)=10000011,17H=00010111B 执行ANL A,#17H后,(A)=00000011B 执行ORL 17H,A 后,(17H)=00110111B 执行XRL A,R0后,(A)=00110100B 执

11、行CPL A 后,(A)=11001011B=0CBH,15,3-12,编程将内部RAM 20H-2FH中的数据和RAM30H-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,16,3-13、已知(A)=34H,(30H)=4FH,求执行ADD A 30H后,A=?指出PSW中相应标志位的情况。,执行ADD A 30H后,(A)=83H;

12、 此过程有半进位,故PSW.6(AC)位为1; 83H=10000011B,奇数个1,因此奇偶校验位P置1; D6D7=01=1,溢出标志为OV置1 ; 其余各位保持初始值0。 所以PSW各位状态如下:(PSW)=45H,17,3-14、已知SP=25H,(),(),问此执行指令后,?,(),()(高),(高), (),()(低),(低), (),,18,3-15、若SP=25H,PC=2345H,标号LABEL所在得地址为3456H。问执行长调用指令”LCALL LABEL”后,堆栈指针和堆栈内容发生什么变化?PC的值等于什么?,初始状态 PC=2345H 执行LACALL后 PC+3PC=

13、2348H 初始SP=25H SP+1SP=26H,26H中压入PC(L),得(26H)=48H SP+1SP=27H,27H中压入PC(H),得(27H)=23H LABEL=3456H,PC=3456H,19,4-1、从内部RAM的30H单元开始存放一组用补码表示的带符号数,其树目已存放在20H单元。编写程序,统计出其中正数、0和负数的数目,将结果分别存入21H、22H、23H单元。,ORG 0000H MOV 21H,00H ;存放正数个数 MOV 22H,#00H ;存放0的个数 MOV 23H,#00H ;存放负数个数 MOV R0,20H ;20H单元中存放的数目放在R0 MOV

14、R1,#30H L01: MOV A,R1 JB ACC.7,NEG ;为负数跳转 CJNE A,#00,POS ;为正数跳转 INC 22H ;为0,22H单元自加1 AJMP Lp NEG: INC 23H AJMP Lp POS: INC 21H Lp: INC R1 DJNZ R0,L01 SJMP $ END,20,4-2、内部RAM中有一数据块,存放在20H-2FH单元中。要求对这些数据进行奇偶校验,凡是满足奇偶校验的数据(一的个数为偶数)都要存放到外部RAM的8000H开始的数据区中。试编写相关程序。,ORG 0000H MOV R0,#20H ;内部RAM首地址 MOV DPT

15、R,#8000H ;外部RAM首地址 MOV R2,#10H ;循环次数 L01: MOV A,R0 JNB P, Lp1 ; PSW中P位为0则跳转 AJMP Lp2 Lp1:MOVX DPTR,A INC DPTR Lp2:INC R0 DJNZ R2,L01 SJMP $ END,21,4-3、编写程序,把外部RAM的1000H10FFH区域内的数据逐个搬到从2000H单元开始的区域。,ORG 0000H MOV R0,#00H MOV R3,#00H;循环次数 L01: MOV P2,#10H MOVX A,R0 MOV P2,#20H MOVX R0,A INC R0 DJNZ R3

16、,L01 SJMP $ END,22,4-4、从内部RAM30H单元开始存放着一组无符号数,其树目已存放在21H单元中。试编写程序,求出这组无符号数中的最小的数,并将其存入20H。,ORG 0000H MOV R0,#30H;首地址 MOV R2,21H;数目 MOV 20H,#0FFH L03:MOV A,R0 CJNE A,20H,LP LP:JC L00 ;Cy=1,A中值小,跳转更新20H中的数 AJMP L01 L00:MOV 20H,R0 L01:INC R0 DJNZ R2,L03 SJMP $ END,23,4-5、试设计一段程序,实现如下功能:把片内RAM 30H-3FH单元

17、中的16个数存放顺序颠倒过来。,ORG 0000H MOV R0,#30H MOV R1,#3FH MOV R2,#08H L00: MOV A,R0 MOV B,R1 MOV R0,B MOV R1,A INC R0 DEC R1 DJNZ R2,L00 SJMP $ END,24,4-6,设计一段程序,实现如下功能:找出从片内RAM的30H开始的16个单元中,存有最小数值的所在单元并将该单元的内容改成0FFH。,(方法一) ORG 0000H MOV R0,#30H ;数据单元首地址 MOV R7,#10H ;循环次数 MOV 40H,#0FFH L00: MOV A,R0 CJNE A,

18、40H,CHECK CHECK: JC L01;Cy=1,A中值小,跳转 SJMP L02 L01: MOV 40H,A MOV 41H,R0 ;最小值地址存放在41H L02: INC R0 DJNZ R7,L00 MOV R1,41H MOV R1,#0FFH ;最小值单元置1 SJMP $ END,25,4-6,设计一段程序,实现如下功能:找出从片内RAM的30H开始的16个单元中,存有最小数值的所在单元并将该单元的内容改成0FFH。,(方法二:) ORG 0000H MOV R1, #30H ;数据单元首地址 MOV R3, #0FH ;循环次数 MOV A , R1 L01: INC

19、 R1 CLR C SUBB A, R1 JNC L02 ;A(R1),无借位,Cy=0,则跳转更新A中数值 ADD A,R1 ;恢复A中数值 SJMP L03 L02: MOV A,R1 MOV B,R1 L03: DJNZ R3,L01 MOV R0,B MOV R0,#0FFH SJMP $ END,26,4-7、编写程序,完成逻辑运算P1.7=P1.6(P1.5P1.4),ORG 0000H MOV P1,#0FFH;锁存器置1 MOV C,P1.5 ANL C,/P1.4 ;C=P1.5(/P1.4) MOV 00H,C MOV C,P1.4 ANL C,/P1.5 ;C=P1.4(

20、/P1.5) ORL C,00H ; C=P1.4P1.5 ANL C,P1.6 MOV P1.7,C SJMP $ END,27,4-8、设计一段程序,实现如下功能:统计出从片内的30H开始的16个单元中,有多少个数大于40,小于80,并把结果存入40H单元中。,ORG 0000H MOV R0,#30H MOV R2,#10H MOV 40H,#00H L00:CJNE R0,#80,L01 L01:JC CHECK ;小于80则跳转,进一步比较 AJMP L03 ;大于等于80均跳转,结束比较 CHECK:CJNE R0,#40,L02 AJMP L03 ;等于40跳转结束比较 L02:JC L03 ;小于40跳转结束比较 INC 40H L03:INC R0 DJNZ R2,L00 SJMP $ END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1