单片机指令系统初学

上传人:子 文档编号:43602766 上传时间:2018-06-07 格式:DOC 页数:22 大小:24.94KB
返回 下载 相关 举报
单片机指令系统初学_第1页
第1页 / 共22页
单片机指令系统初学_第2页
第2页 / 共22页
单片机指令系统初学_第3页
第3页 / 共22页
单片机指令系统初学_第4页
第4页 / 共22页
单片机指令系统初学_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《单片机指令系统初学》由会员分享,可在线阅读,更多相关《单片机指令系统初学(22页珍藏版)》请在金锄头文库上搜索。

1、单片机指令系统初学单片机指令系统初学 数据传送类一.用立即数置数指令(1) MOV A , #data ;将 8 位(00HFFH)立即数送入 A例如: 将立即数 51H 送入 A即:MOV A,#51H结果:A=51H(2) MOV Rx, #data ;将 8 位(00HFFH)立即数送入 Rx, x 表示 0,1,27.例如: 将 8 位立即数 63H 送入 R4即:MOV R4, #63H结果:R4=63H(3) MOV direct , #data ;将 8 位(00HFFH)立即数送入片内某低 128 单元例如:将 8 位(00HFFH)立即数 0AH 送入内存低 128 单元 3

2、0H即: MOV 30H, #35H结果:30H=35H(4) MOV Rj , #data ;立即数送入片内 RAM 单元,j 表示0、1例如:将 39H 送入片内 53H 中即:MOV 53H, #39H结果:53H=39H二.以累加器 A 为一方的传送指令 MOV A,Rx;x 表示 0、1、2、7,将工作寄存器的内容送入 A。例如:将 R6 单元内容送入 A即:MOV A,R6 MOV Rx,A ;x 表示 0、1、2、7,将累加器的内容送入 Rx例如:A=#04H 将 A 中内容送入 R4即: MOV A,#04HMOV R4,A结果:R4=#04H MOV A Rj; j 表示 0

3、、1,某片内 RAM 单元内容送累加器 A例如:将片内 33H 内容送入 A即:MOV R0,#33H ;R0 表示 33HMOV A,R0 ;先看 R0 中是什么值,把这个值作为地址送入 A。则把 33H 单元内容送入 A结果:A 的数据为片内 RAM30H 的内容 MOV Rj,A;j 表示 0、1,累加器内容送入片内 RAM 单元例如:将 RAM55H 中数据送入累加器 A即: MOV R1,#55HMOV A,R1;同上,将 55H 单元内容送入 A结果:A=(55H)的内容 MOV A,direct ;direct 指的 RAM 单元中低 128B 单元例如:将 51H 中内容送入累

4、加器 A 中即: MOV A,51H结果:A=(51H)的内容 MOV direct,A ;direct 指的 RAM 单元中低 128B 单元例如:将 A 中内容送入 66H 中即:MOV 66H,A结果:A=(66H)片内 RAM三.不以累加器 A 为一方的传送的指令 MOV direct,Rx ;将某工作寄存器的内容送入片内 RAM 某单元,x 表示 0,1,2,7,direct 是 RAM 低 128 字节例如: 将 R6 内容送入 32H 中即:MOV 32H,R6结果: R6=(32H) MOV Rx,direct ;将内存低 128 位送入某工作寄存器例如:将 51H 内容送入

5、R1 中即:MOV R1,51H结果: R1=(51H) MOV direct,Rj ;片内 RAM 某单元内容送入片内 RAM 低 128 字节地址,j 表示 0,1。例如:将 93H 内容送入 43H 中即:MOV R1,#93HMOV 43H,R1结果: (43H)=(93H)(4) MOV Rj,direct ;内存低 128 字节某单元内容送入另一片内RAM 单元例如:将 RAM 低 60H 中内容送入另一个 RAM51H 中即:MOV R0,#51HMOV R0,60H结果:(51H)=(60H)(5) MOV direct1,direct2 ;片内存低 128 位的传送指令,结果

6、存在 direct1例如: 将 53H 内容送入 35H 中即: MOV 35H,53H结果: (35H)=(53H)四.交换指令(1) XCH A , 4Rx ;某寄存器内容与 A 中内容交换,x 表示0、1、2、3、4、5、6、7例如:将 A 中的值 52H 与 R3 中的值 61H 交换即:MOV A,#52H ;A=52H MOV R3,# 61H ;R3=61HXCHA,R3 ;A=61H,R3=52H结果:A=61H,R3=52H(2)XCHA , Rj ;某片内 RAM 单元内容与累加器 A 内容交换,将Rj 作为地址,看 Rj 的值为多少,则把该地址中的数据与A 交换,j 表示

7、 0,1例如:将片外 45H 的值 53H 与累加器 A 内容 43H 交换即:MOV R0,#45H ;R0=45HMOV A, #43H A=43HXCH A,R0 ;将 45H 中的数据与 A 中数据交换 A=53H ,45H=43H(3) XCH A , direct ;将片低 128 字节内容与 A 中内容交换例如:将 35H 单元内容与 A 中内容交换即:XCH A,35H(4) XCHD A, Rj ;某片内 RAM 单元数据与 A 中数据进行低四位的交换指令,j 表示 0,1例如:将 52H 数据值 36H 和 A 中数据 64H 的低四位交换即:MOV R1 , #52H ;

8、R1=52HMOV A, #64H ;A=64HXCHD A, R1 ;低四位交换,高四位不变,A=62H, 52H=54H(5)SWAP A ;累加器 A 中数据高四位和低四位交换例如:将 A 中数据 064H 值高四位和低四位交换即:MOV A, #64HSWAP A ;指令执行后的结果 A 的内容为:046H结果: A=46H注意:括号表示的是地址现在用以上指令举实例说明:a. A 中的内容送入 R0MOV R0,Ab.将片内 RAM56H 内容送入 A,试编程实现之MOV R0,#56H ;用 8 位立即数置数MOV A,R0c. 将 R7 中的值 63H 送入 A,R7 中的值保持不

9、变MOV R7,#63HMOV A,R7d.将片内 RAM63H 的值 35H 送入 AMOV 63H,#35H ;用 8 位立即数置数MOV A,63He.利用 A 中数据对 R0,R1,R2 进行清零MOV A ,#00HMOV R0,AMOV R1,AMOV R2,Af.编程实现 30H,31H,32H 的值分别 63H,0FEH,0BCHMOV 30H,#63HMOV 31H,#0FEHMOV 32H,#0BCHg. 编程实现 R7=53H,R6=64H,将数据分别暂存到 64H,65HMOV R7 ,#53HMOV 64H,R7MOV R6,#64HMOV 65H,R6h. 将 R0

10、 中数据 53H 与片内 RAM53H 数据 04H 进行低四位交换,结果存入片内 RAM55H,试编程实现之MOV R0 ,#53H ;对 R0 置数,R0=53HMOV 53H,#04H ;对 53H 置数,53H=04HMOV A,53H;将 53H 送入 AXCHD A,R0;将 A 与 R0 进行低四位交换,A=03H,R0=54HMOV 55H,A;结果存入 53H 中 算术运算类一,不带进位的加法指令(1)ADDA, #data ;立即数与累加器 A 相加指令例如:将立即数#14H 与累加器 A 中内容相加,其结果暂存 42H即:ADDA , #14HMOV 42H, A(2)

11、ADD A , Rx ;某工作寄存器与累加器 A相加,加后结果送入 A 中例如:将立即数#53H 与 R2 中 35H 的内容相加,结果存入 50H即:MOV R2 ,#35H;R2=35HMOV A ,#53H;A=53HADD A ,R2;A=R2+AMOV 50H,A结果:50H 的数据为#88H(3) ADD A, Rj ;片内 RAM 单元与累加器 A 相加,其结果送入 A中例如:用间接寻址法将 30H 内容与立即数#24H 相加,其结果入 53H即:MOVR0 ,#30HMOV A,#24HADDA,R0MOV53H ,A(四)ADDA , direct ;直接寻址,例如: 将 A

12、 中内容与 50H 内容相加即:ADD A ,50H不带进位的加法指令皆以 A 为一方与操作数作加法运算,其结果存于 A 中.现用以上指令举实例说明:a. 将立即数 05H 与立即数 09H 相加,其结果送入 56HMOV A, #05HADD A,#09HMOV 56H ,Ab. 用立即数置数指令将 35H 送入 R0,44H 送入 53H,作加法运算,结果暂存 30HMOV R0 ,#35HMOV 53H,#44HMOV A ,53HADD A,R0MOV 30H ,A二 带进位加法指令(1) ADDC A ,#data(2 ) ADDC A ,Rx(3 ) ADDC A ,direct(

13、4 ) ADDC A ,Rj此类加法指令与不带进位的加法指令用法基本相同。三 加 1 指令(1)INC A(2)INC Rx(3)INC direct(4)INC Rj前面三条指令都是把操作数中的数据加 1 运算例如:将 R5 中内容加 1即:INC R5第四条指令是引起地址指针的变化例如: MOV R0 ,#53HINC R0MOV A, Rj结果:将 54H 中的内容送入累加器 A 中四 ,带借位减法指令 (1) SUBB A ,#data;累加器 A 与立即数相减,其结果存入 A例如: 累加器 A 中 53H 与立即数#23H 相减即: MOV A,#53HADD A,#23H结果: A

14、=30H(2) SUBB A, Rx ;累加器 A 与某工作寄存器相减,其结果存入 A例如: 累加器 A 减去 R6 即: SUBB A,R6(3) SUBB A,direct ;累加器 A 与片内 RAM 单元内容相减,其结果存入 A例如: 累加器 A 减 53H 的内容送入 30H即: SUBB A ,53HMOV 30H ,A(4) SUBB A ,Rj ;累加器 A 与某片内 RAM 单元内容相减,其结果存在 A 中例如: 累加器 A 与 93H 内容相减即: MOV R1 ,#93HSUBB A ,R1结果: 累加器 A 某片内 93H 内容相减,将结果送在 A 中在减法过程中,若位

15、 7 需借位(A 中数据小于操作数据) ,则 CY=1,否则 CY=0在减法过程中,若位 3 需借位(A 中数据低四位小于操作数中的低四位) ,则 AC=1,否则 AC =0在减法过程中,若位 7 需借位而位 6 不借位,或位 6 需借位而位 6不需借借位,则 0V=1,否则 OV =0现用以上指令举实例说明:a. 立即数 0FH 与立即数 09H 相减,其结果存入 75H: MOV A,#0FHSUBB A,#09HMOV 75H,Ab. 35H=(04H) ,64H=(01H)试编程用直接寻址法使两地址数据相减结果存入 53HMOV 35H ,#04HMOV 64H ,#01HMOV A ,35HSUBB A ,64HMOV 53H ,A五 , 减 1 指令 1(1) DEC A ;累加器内容减 1 指令(2) DEC Rx ;某片某工作寄存器内容减 1 指令(3) DEC direct ;片内 RAM 单元内容减 1(4) DEC Rj ;某片内 RAM 单元内容减 1减 1 指令的使用方法与加 1 指令相同六 其它类运算指令(1) MUL AB ;乘法指令

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号