指令系统及程序设计
更新时间:2023-09-17 19:27:01 阅读量: 幼儿教育 文档下载
1、用数据传送指令完成如下功能: (1)工作寄存器R2的内容送给R3; MOV A,R2 MOV R3,A;
两个工作寄存器之间不能直接进行数据传送
(2)内部RAM20H单元的内容送给内部RAM30H单元; MOV 30H,20H;
两个直接地址之间可以直接进行数据传送
(3)内部RAM20H单元的内容送给外部RAM20H单元; MOV R1,#20H MOV A,@R1 MOVX @R1,A;
内部RAM中的数据必须要先送到累加器A再由A送出到外部RAM去 (4)外部RAM20H单元的内容送给外部RAM2000H单元; MOV RI,#20H MOV DPTR,#2000H MOVX A,@R1 MOVX @DPTR,A;
两个外部RAM单元也不能直接进行数据传递,必须要先将外部RAM一个单元数据送给A再由A到另一个外部RAM单元中去 (5)ROM30H单元的内容送给内部RAM30H单元; MOV DPTR,#0030H MOV A,#00H MOVC A,@A+DPTR MOV 30H,A
要先将ROM指定单元数据送给A再由A到内部RAM指定单元中
(6)ROM3000H单元的内容送给外部RAM2000H单元;
MOV DPTR,#3000H MOV A,#00H MOVC A,@A+DPTR MOV DPTR,#2000H MOVX @DPTR,A
要先将ROM指定单元数据送给A再由A到外部RAM指定单元中去 小结: 1、
注意数据传送类指令有三种:MOV(内部数据传送)、MOVC(从程序存储器中取数)、MOVX(累加器A与外部数据存储器间进行数据传递),要注意区分三种指令,不要混淆; 2、
外部数据存储器(外部RAM)只能用寄存器间接寻址方式访问,且只能与累加器A进行数据传送; 3、
外部数据存储器(外部RAM)使用寄存器间接寻址的地址指针选取原则:地址在8位以内(00H-FFH)可以使用R0、R1,也可以使用DPTR;地址超过8位,只能使用DPTR; 4、
内部数据存储器(内部RAM)低128B可以用直接寻址方式也可以寄存器间接寻址方式访问;内部数据存储器高128B(仅52子系列有)只能用寄存器间接寻址方式访问,地址指针选取R0或R1; 5、
程序存储器(ROM)是只读的,从ROM中读取数据用MOVC指令,对应变址寻址方式,要预先在A和DPTR(MOVC A,@A+DPTR)或A(MOVC A,@A+PC)中设好相应的值;
2、外部RAM20H单元的内容和外部RAM21H单元的内容相乘,结果低八位送外部RAM22H单元,高八位送外部RAM23H单元 MOV R1,#20H MOVX A,@R1 MOV B,A INC R1 MOVX A,@R1 MUL AB INC R1
MOVX @R1,A INC R1 MOV A,B MOVX @R1,A
外部数据存储器(外部RAM)只能用寄存器间接寻址方式访问,且只能与累加器A进行数据传送;如MOVX B,@DPTR是非法指令。
3、完成两个三字节二进制数的加法:第一个数存在内部RAM的30H、31H、32H(32H为最低字节)单元,第二个数存在内部RAM的40H、41H、42H(42H为最低字节)单元,结果存入内部RAM的 30H、31H、32H(32H为最低字节)单元。 ORG 0000H SJMP MAIN ORG 0030H MAIN: CLR C MOV R2,#3 LOOP: MOV R0,#32H MOV R1,#42H MOV A,R0 ADDC A,R1 MOV R0,A DEC R0 DEC R1 DJNZ R2,LOOP SJMP $
注意三字节数加法,高字节做加法时要考虑到低字节所产生的进位,所以用ADDC指令。
4、用逻辑运算指令完成如下功能:
(1)内部RAM20H单元数的低三位清零,其余位保持不变;
ANL 20H,#0F8H;
(2)内部RAM20H单元数的高两位置1 ,其余位保持不变;
ORL 20H,#0C0H
(3)内部RAM20H单元数的高两位取反,其余位保持不变; XRL 20H,#0C0H
(4)内部RAM20H单元数的所有位取反;
XRL 20H,#0FFH 说明:
1、逻辑与通常用来将累加器A或内部RAM某单元的某几位清0; 2、逻辑或通常用来将累加器A或内部RAM某单元的某几位置1; 3、逻辑异或通常用来将累加器A或内部RAM某单元的某几位取反; 4、注意根据要求选取的立即数
5. MOV R0,#30H ; (R0)=30H MOV A,@R0 ; (A)=(30H)=64H MOV DPTR,#1000H ; (DPTR)=1000H MOVX @DPTR,A ; (1000H)=(A)=64H MOV A,50H ; (A)=(50H)=04H
MOV DPTR,#TAB ; (DPTR)=(TAB)=2000H
MOVC A,@A+DPTR ; (A)=((A)+(DPTR))=(2004H)=00H MOV P1,A ; (P1)=(A)=00H
6.(SP)=6AH (R0)=35H, (R1)=45H,(6AH)=(34H),(69H)=(33H),(68H)=(32H),(67H)=(31H),(66H)=(30H) (40H)=(30H),(41H)=(31H),(42H)=(32H),(43H)=(33H),(44H)=(34H) 本程序段的功能为:把40H之后5个字节单元的内容存入堆栈,而把30H之后的5个字节单元的内容送到40H之后的5个字节单元里
7、试编写一个程序,其功能为将内部RAM中30H~32H的内容左移一位
7. ORG 0000H SJMP MAIN
ORG 1000H MAIN: MOV R7,#3 MOV R0,#30H MOV A,32H MOV C,ACC.7 LOOP: MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R7,LOOP SJMP $
8、试编程将连续存放在外部RAM中1000H开始的100个单元的内容送到2000H开始的地址单元中?
ORG 0000H
LJMP MAIN ORG 0030H MAIN: MOV SP,#6FH MOV R7,#100 MOV DPL,#00H LOOP: MOV DPH,#10H MOVX A,@DPTR MOV DPH,#20H MOVX @DPTR,A INC DPL DJNZ R7,LOOP SJMP $ 说明:
1、此题目的外部RAM两个区域地址都超过了8位,所以不能使用R0或R1作为地址指针,只能使用DPTR
正在阅读:
指令系统及程序设计09-17
排水沟清淤施工方案05-13
晋教科函59号03-08
九年级语文测试习题:第12课《论美》同步练习(苏教版九上)01-04
状物作文教案08-21
智能数控沙盘 - 图文12-09
中国地质大学(武汉)大学物理下册习题答案12-05
秸秆生化饲料及秸秆饲料颗粒机08-24
煤气站事故专项应急预案06-07
- 浅说小学数学教学中应该注意的几个问题
- 请问怎么区分合并和非企业合并
- 鞋业行业分析
- 2017年楚雄州九年级英语试题及答案 - 图文
- 思想道德修养与法律基础 - 在线作业 - 5
- 2016-2017开学典礼主持词
- 汽车构造复习题 机械工业出版社
- 新时期国企政工干部素质和能力的培养策略
- 浅谈城市绿色照明
- 《单片机原理与应用》实验指导书 - 图文
- 小升初语文口语交际经典题
- 理研侦测器说明书 - 图文
- 地籍测量学复习习题
- 2016年秋季学期五年级语文上册期末检测试题(带答案)
- 2014年黑龙江特岗教师面试指导 - 说板书
- 西师大版二年级语文第五单元检测题 姓名
- 3.振荡波电压法试验规范
- \\"Water\\" Idioms 关于“水”的习语& 成语
- 2英国文学史习题全集(含答案)
- 2016年蚌埠烟草专卖局招聘公告 - 图文