




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章 89C51指令系统第十章 系统实用程序 一、填空题:1、 CPU在取指令时,采用 寄存器进行寻址;CPU在访问64KB的片外数据存储器时,一般采用 寄存器进行寻址。(PC,DPTR)2、 当需要从51单片机程序存储器取数据时,采用的指令操作码应为 。(MOVC)3、 假定(A)=68,(R5)=79 ,执行下列指令后,累加器A内容为 。(47H) ADD A, R5 DA A4、若A中数据为63H,那么PSW的最低位(奇偶位P)为 。(用“1”或“0”表示)(0)5、访问89C51片外数据存储器采用的是 寻址方式。89C5片外可直接寻址的程序存储空间最大可达 KB,可直接寻址的数据存储空间最大可达 KB。(寄存器间接寻址,64,64)6、20根地址线的寻址范围可达 。(1MB)7、指令AJMP的调用范围是 ,指令LJMP的调用范围是 。(2KB,64KB)二、简答题:1、访问内部RAM单元可以采用哪些寻址方式?访问外部RAM单元可以采用哪些寻址方式?访问特殊功能寄存器(SFR)可以采用哪些寻址方式? 答:对特殊功能寄存器只能采用直接寻址方式;对单片机内部RAM的高128个字节(80HFFH),只能采用寄存器间接寻址;对外部扩展的数据存储器只能用MOVX指令访问,即寄存器间接寻址方式;而内部RAM的低128个字节(00H7FH)既能用直接寻址方式,也能用寄存器间接寻址方式。 2、访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。 答:访问外部数据存储器可以用以下指令实现: MOVX A, Ri ;(Ri)A,寄存器Ri指向的片外RAM地址中的内容送到累加器A中 MOVX Ri, A ;A(Ri),累加器中内容送到寄存器Ri指向的片外RAM地址中 MOVX A, DPTR ;(DPTR)A,数据指针指向的片外RAM地址中的内容送到累加器A中 MOVX DPTR,A;A(DPTR),累加器中内容送到数据指针指向的片外RAM地址中访问程序存储器可以用以下指令实现:MOVC A, A+DPTR ;(A+DPTR)A,表格地址单元中的内容送到累加器A中 MOVC A,A+PC;PC+1PC,(A+PC)A,表格地址单元中的内容送到累加器A 3、 试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。 (1) 立即寻址方式;(2) 寄存器寻址方式;(3) 寄存器间接寻址方式 答:(1)立即寻址方式: MOV 30H, #0FH (2)寄存器寻址方式: MOV R5, #0FH MOV 30H, R5 (3)寄存器间接寻址方式:MOV R1, #0FH MOV 30H, R1 4、试根据指令编码表写出下列指令的机器码。 (1)MOV A,#88H 74H, 88H (2)MOV R3,50H 0ABH, 50H (3)MOV P1.1,#55H 75H, 91H, 55H (4)ADD A,R1 27H(5)SETB 12H D2H, 12H 5、写出实现下列要求的指令或程序片段。 (1) 将R0的内容传送到R1; (2) 内部RAM的20H单元内容传送到寄存器R1; (3) 内部RAM的20H单元的D7和D3位清零,其它位保持不变; (4) 外部RAM的1000H单元内容传送到内部RAM的60H单元中; (5) 外部RAM的1000H单元内容传送到寄存器R2; (6) 清除累加器高4位。 答:(1)MOV A, R0 MOV R1, A (2)MOV R1, 20H (3)MOV A, 20H ANL A, #77H (4)MOV DPTR, #1000H MOVX A, DPTR MOV 60H, A (5)MOV DPTR, #1000H MOVX A, DPTR MOV R2, A (6)ANL A, #0FH 6、指出以下指令中源操作数的寻址方式:(1) MOV R7 ,#77H ;立即寻址 (2) MOV A, R0 ;寄存器间接寻址 (3) MOVC A, A+DPTR ;变址寻址 (4) SETB EA ;位寻址 (5) MOV A, SBUF ;直接寻址(6) MOVC A, APC ;变址寻址 (7) MOVX A ,DPTR ;寄存器间接寻址 (8) SJMP LOOP ;相对寻址(9) INC DPTR ;寄存器寻址(10) CLR 20H ;位寻址(11) CLR C ;位寻址 (12) PUSH 03H ;直接寻址7、试编写段程序,将R3中的数乘4(用移位指令)。 答: MOV A, R3 MOV 23H, #02H L0:DJNZ 23H, L1 L1: RL A SJMP L0 8、已知A = 83H,R0 = 17H,(17H)= 34H,请写出执行完下列程序段后A的内容。 答: ANL A, #17H A = 03H ORL 17H, A (17H)= 37H A = 03H XRL A, R0 A = 34H CPL A A = CBH9、设NEXT是目标指令标号,其值为0123H,求下列指令的机器码。 (1) 0100H: SJMP NEXT 解: rel=0123H-(0100H+2)=21H0102H: 机器码为:0100H: 80H 21H(2) 7100H: LJMP NEXT 解: 机器码为:7100H: 02H 01H 23H(3) 0123H NEXT:SJMP NEXT 解: rel=0123H-(0123H+2)=-2=0FEH, 故机器码为:0123H: 80H 0FEH(4) 0178H: AJMP NEXT解:当前PC =0178H+2 =017AH = 00000 001 0111 1010 B ;目标指令地址0123H提供的低11位地址为 001 0010 0011代入机器码格式中,故机器码为:0178H: 21H 23H (001 00001H 0010 0011B)10、执行某LCALL指令后,堆栈内容如图所示,问该指令的首址是多少?它执行前SP的内容为多少?子程序中的两条现场保护指令依次是什么?答:该指令首址4A50H,执行前SP的内容是2FH, 程序中的两条现场保护指令依次是: PUSH ACC PUSH PSW三、简单编程题:1、编程,查找在内部RAM的20H50H单元中是否有0AAH这个数,若有将51H单元置01H;若未找到,将51H单元置0。答: MOV R0, #20H MOV R1, #31H LOOP:CJNE R0, #0AAH, NEXT SJMP LTNEXT: INC R0 DJNZ R1, LOOP MOV 51H, #00H SJMP ED LT: MOV 51H, #01H ED: RET 2、编程,查找片内RAM的20H50H单元中出现00H的次数,并将查找的结果存入51H。 答: MOV R0, #20H MOV R1, #31H CLR A LP: MOV R0, #00H, NEXT INC A NEXT:INC R0 DJNZ R1, LP MOV 51H, A RET 3、片外RAM中存有一个若干字符的数据块,首址为SOURCE,要传到内部RAM以DIST开始的区域直到遇到“$”时结束。“$”也要传送。 答: MOV DPTR, #SOURCE MOV R0, #DIST LOOP: MOVX A, DPTR MOV R0, A CJNE A, #24H, NEXT SJMP ED NEXT:INC DPTR INC R0 SJMP LOOP ED: RET 4、编程把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。 答: MOV DPTR, #2000H MOV R0, #30H MOV R2, #08H LOOP: MOVX A, DPTR MOV R0, A INC DPTR INC R0 DJNZ R2, LOOP RET5、 若单片机得主频为12MHz,试用循环转移指令编制延时20ms的延时子程序。并说明这种软件延时方式的优缺点。 解: 1T=12(112MHZ)=1s DELAY: MOV R7, #20 ;1TLP: MOV R6, #250 ;外循环指令, 1TR7L0: NOP NOPDJNZ R6, L0 ;内循环指令, 4TR7R6 DJNZ R7, LP ;外循环指令, 2TR7 RET ;2T延时时间t= 1T+4TR7R6+(1T+2T)R7+2T= 250204T+63T20ms;取平均值 6、编程把A中的二进制数转换成三位BCD码,并存入片内RAM50H、51H、52H单元。50H存百位。解: ORG 1000H MOV B, #64H DIV AB MOV 50H, A; 存百位 MOV A, #10 XCH A, B DIV AB MOV 51H, A ;存十位 MOV 52H, B ;存个位RET7、编子程序,将R1中的2个十六进制数转换为ASCII后存入R3、R4中。解: ORG 0200HMAIN:MOV A, R1 ANL A, #0FH ACALL HCA; 调转换子程序 MOV R3, A MOV A, R1 SWAP A ANL A, #0FH ACALL HCA; 调转换子程序 MOV R4, A SJMP $ ORG 0100HHCA: CJNE A, #09H, LP SJMP EE ;=09,L1LP: JC L1 ; A小于09H, L1 ADD A, #37H ;大于09H,加37HSJMP EE L1: ADD A, #30H ;小于等于09H,加30HEE: RET 8、编程计算片内RAM区50H59H十个单元中数的算术平均值,将结果存放在5AH中。 解:程序如下: (设10个单元的和小于255) MOV R0, #50H MOV R2, #10 MOV A, #0 LP: ADD A, R0 INC R0 DJNZ R2, LP MOV B, #10 DIV AB MOV 5AH, A SJMP $9、在片外RAM 3200H开始的单元中有100个有符号数,试编程统计其中正数、负数和0的个数分别存入片内RAM 30H、31H、32H。解: MOV DP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吊装工程编制方案(3篇)
- 堤防工程模板专项方案(3篇)
- 四川省广元市2025年中考化学真题附真题答案
- 历史面试题库及答案解析
- 昆山电子面试题库及答案
- 客服面试题库大全及答案
- 安全教育培训评定课件
- 安全教育培训设计课件
- 2025年自动驾驶汽车车联网技术发展与市场前景研究报告
- 2025年工业互联网平台网络隔离技术在网络安全预警机制构建报告
- 急性胰腺炎早期液体复苏的思考 2
- 急性闭角型青光眼合并高眼压护理查房
- 2025年工会财务知识竞赛考试题库及参考答案
- 税收的原则课件
- 医疗机构应急管理与急救技能手册
- 2025留置辅警笔试题库及答案
- 胸椎后纵韧带骨化症
- 2025年秋季小学三年级上册语文教学计划
- 2025未签合同劳动争议仲裁申请书
- 耳前瘘管继发感染诊疗要点
- 2025年北京中考真题英语试题及答案
评论
0/150
提交评论