51单片机学习04(传送指令)
51单片机指令
51单片机指令单片机,这个在电子世界中扮演着重要角色的小家伙,其功能的实现离不开各种指令的指挥。
51 单片机作为经典的单片机类型,拥有丰富的指令集,这些指令就像是单片机的“语言”,告诉它该如何完成各种任务。
51 单片机的指令可以分为数据传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令等几大类。
数据传送指令是单片机中最常用的指令之一。
比如说“MOV A,50H”,这条指令的作用就是把十六进制数 50H 传送到累加器 A 中。
再比如“MOV R0, A”,它把累加器 A 的内容传送到寄存器 R0 中。
通过这些数据传送指令,我们可以在单片机内部的各个存储单元之间轻松地搬移数据,为后续的运算和操作做好准备。
算术运算指令则负责完成加、减、乘、除等基本的数学运算。
以加法指令“ADD A, R1”为例,它将累加器 A 的值和寄存器 R1 的值相加,结果存放在累加器 A 中。
减法指令“SUBB A, 10H”则是从累加器 A 的值中减去十六进制数 10H,并考虑借位情况。
这些算术运算指令在处理数值计算、数据调整等方面发挥着重要作用。
逻辑运算指令用于对数据进行与、或、异或等逻辑操作。
像“ANL A, R2”就是将累加器 A 的值和寄存器 R2 的值进行按位与运算,结果存放在累加器 A 中。
“ORL A, 80H”则是将累加器 A 的值和十六进制数80H 进行按位或运算。
逻辑运算指令在数据处理、条件判断等场景中常常被用到。
控制转移指令是改变程序执行流程的关键。
比如“JZ label”,如果累加器 A 的值为 0,则程序跳转到指定的 label 处执行;“CJNE A, 50H, label”,如果累加器A 的值不等于十六进制数50H,就跳转到label 处。
通过这些控制转移指令,我们可以根据不同的条件让程序有选择地执行不同的代码段,实现复杂的逻辑控制。
位操作指令是 51 单片机的一大特色。
“SETB bit”可以将指定的位设置为 1,“CLR bit”则将其清零。
51单片机指令使用方法
51单片机指令使用方法51单片机是一种常用的嵌入式微控制器,广泛应用于各种电子设备中。
它具有强大的控制能力和灵活的指令集,为我们开发各种应用提供了便利。
在使用51单片机时,我们需要熟悉其指令的使用方法,下面我们来介绍一些常用的指令及其应用。
首先,我们来讲解一些与数据传输和处理相关的指令。
MOV指令是最常用的指令之一,用于将一个数据从一个寄存器或内存单元传输到另一个寄存器或内存单元。
通过MOV指令,我们可以在单片机中实现数据的复制、传递和处理等操作。
除了MOV指令,还有一些其他常用的数据传输和处理指令,比如ADD指令用于进行加法运算,AND指令用于进行逻辑与操作,OR指令用于进行逻辑或操作等。
这些指令可以实现各种数据处理、逻辑运算和位操作等功能,为我们的程序提供灵活性和多样性。
接下来,我们介绍一些与控制流程相关的指令。
循环结构是程序中常用的一种控制结构,而JMP指令和CJNE指令可以实现跳转和循环控制。
JMP指令用于无条件跳转到指定的地址,而CJNE指令则根据比较结果决定是否跳转到指定的地址。
通过这些指令,我们可以实现程序的分支、循环和条件控制等功能。
此外,还有一些与中断处理相关的指令需要我们熟悉。
中断是单片机中常用的一种事件触发机制,通过中断处理,我们可以实现对外部事件的及时响应。
EA指令用于使能全局中断,而EN和DIS指令用于使能和禁止外部中断。
通过这些指令,我们可以合理利用中断机制,提高程序的响应速度和实时性。
最后,我们来介绍一些与IO口操作相关的指令。
单片机的IO口是与外部设备进行通信的接口,而P1、P2等寄存器则是与IO口对应的数据寄存器。
通过MOV指令和SETB/C指令,我们可以实现对IO口数据的读写操作和控制。
通过这些指令,我们可以与外部设备进行数据交互,实现各种输入输出功能。
总结起来,51单片机的指令使用是嵌入式开发中的基础知识,熟练掌握各种指令的使用方法能够提高我们的开发效率和程序的性能。
51系列单片机指令表
E5direct
2
1
MOVdirect.A
累加器A送直接寻址单元
F5direct
2
I
MOVRn.#data
立即数送寄存器
78~7Fdata
2
I
MOVdirect,#data
立即数送直接寻址单元
75directdata
3
2
MOV@Ri,#data
立即数送内部RAM单元
76~77data
2
1
MOVdirect,Rn
寄存器送直接寻址单元
88~8Fdireci
2
2
MOVRn.direct
直接寻址单元送寄存器
A8~AFdirect
2
2
MOVdirect.@Ri
内部RAM单元送直接寻址单元
86~87direct
2
2
MOV@Ri,direct
直接寻址单元送内部RAM单元
A6-A7direct
DOdireci
2
2
PUSHdirect
直接寻址单元压入栈顶
COdirect
2
2
算术运算类指令
指令
功能简述
指令代码
字节
数
T
ADDA,Rn
累加器A加寄存器
28-2F
1
1
ADDA.@Ri
累器A加内部RAM单元
26-27
1
I
ADDA.direct
照加器A加直接寻址单元
25direct
2
1
ADDA.#data
盛加器A与寄存器交换
C8~CF
1
1
XCHA,@Ri
51单片机教程:单片机数据传送类指令
51单片机教程:单片机数据传送类指令
单片机的累加器A 与片外RAM 之间的数据传递类指令
MOVX A,@Ri
MOVX @Ri,A
MOVX A,@DPTR
MOVX @DPTR,A
说明:
1)在51 系列单片机中,与外部存储器RAM 打交道的只能是A 累加器。
所有需要传送入外部RAM 的数据必需要通过A 送去,而所有要读入的外部
RAM 中的数据也必需通过A 读入。
在此我们能看出内外部RAM 的区别了,
内部RAM 间能直接进行数据的传递,而外部则不行,比如,要将外部RAM
中某一单元(设为0100H 单元的数据)送入另一个单元(设为0200H 单元),也必须先将0100H 单元中的内容读入A,然后再传送到0200H 单元中去。
要读或写外部的RAM,当然也必须要知道RAM 的地址,在后两条单片机指令中,地址是被直接放在DPTR 中的。
而前两条指令,由于Ri(即R0 或R1)只是一个8 位的寄存器,所以只供给低8 位地址。
因为有时扩展的外部RAM 的数量比较少,少于或等于256 个,就只需要供给8 位地址就够了。
使用时应当首先将要读或写的地址送入DPTR 或Ri 中,然后再用读写命令。
例:将单片机外部RAM 中100H 单元中的内容送入外部RAM 中200H 单元中。
MOV DPTR,#0100H
MOVX A,@DPTR。
[信息与通信]MCS-51单片机指令系统-数据传送类指令
<P1>=0CAH,分析以下程序执行后各单元及寄存
器、P2口的内容.
• MOV R0,#30H
;R0=30H
• MOV A,R0
;A=40H
• MOV R1,A
;R1=40H
• MOV B,R1
;B=10H
• MOV R1,P1
;<40H>
• MOV P2,P1
=0CAH
• MOV
;
•执行上述指10令H后,#的20结H果为:<R0>=3<0PH2,<>R=10>C=A<HA>=40H,
3.3 MCS-51指令系统
3.3.1 数据传送类指令〔29条〕 传送类指令分成两大类
1. MOV,一般传送 2.Байду номын сангаас非MOV,特殊传送, 如:MOVC、MOVX、PUSH、
POP、 对PSW的X影C响H、XCHD及SWAP.
• 1. 访问片内数据存储器的一般数据传送指令
• 该类指令的功能是实现数在片内RAM单元之间、 寄存器之间、寄存器与RAM单元之间的传送.所 有指令具有统一的格式,其格式如下:
MOV Rn,
A direct
#data
例:若〔60H〕= 30H 执行 MOV R6,60H
结果:〔R6〕= 30H.
3> 以direct 为目的操作数的指令
MOV direct,
A Rn direct1 Ri
#data
例:若〔R0〕=30H,〔30H〕=25H 执行MOV 40H,R0 指令
结果:〔40H〕=25H.
RAM20H单元 • 外部ROM 2000H单元中的内容送到外部
51单片机指令总结
51单片机指令总结51单片机是一种经典的单片机型号,由英特尔公司推出。
它是一种基于哈佛结构的8位单片机,具有强大的功能与广泛的应用领域,包括嵌入式系统、自动控制、仪器仪表、通信等等。
51单片机的指令集是其核心功能之一,本文将对51单片机的指令进行详细总结。
1.数据传送指令:用于数据在寄存器之间的传递,包括MOV、XCH、PUSH、POP等指令。
MOV指令用于将数据从一个寄存器传送到另一个寄存器,XCH指令用于交换两个寄存器的值,PUSH和POP指令用于将数据从寄存器压入堆栈或从堆栈弹出。
2.算术指令:用于进行算数运算,包括ADD、SUB、MUL、DIV等指令。
ADD指令用于两个操作数相加,SUB指令用于两个操作数相减,MUL指令用于两个操作数相乘,DIV指令用于两个操作数相除。
3.逻辑指令:用于进行逻辑运算,包括AND、OR、XOR、NOT等指令。
AND指令用于进行按位与运算,OR指令用于进行按位或运算,XOR指令用于进行按位异或运算,NOT指令用于进行按位非运算。
4.跳转指令:用于控制程序的跳转,包括JMP、JZ、JC、DJNZ等指令。
JMP指令用于无条件跳转到指定地址,JZ指令用于如果结果为零则跳转,JC指令用于如果进位标志位为1则跳转,DJNZ指令用于如果结果不为零则跳转。
5.输入输出指令:用于与外部设备进行数据的输入与输出,包括IN、OUT指令。
IN指令用于从指定的端口读取一个字节数据,OUT指令用于向指定的端口写入一个字节数据。
6.中断指令:用于处理中断事件,包括EI、DI、INT等指令。
EI指令用于使能中断,DI指令用于禁止中断,INT指令用于产生软件中断。
7.位操作指令:用于对特定位进行操作,包括SETB、CLR、CPL、RL、RR等指令。
SETB指令用于将指定位设置为1,CLR指令用于将指定位清零,CPL指令用于对指定位进行取反操作,RL指令用于循环左移操作,RR指令用于循环右移操作。
51单片机数据传送类指令
数据传送类指令:1 MOV A,Rn 寄存器内容送入累加器2 MOV A,direct 直接地址单元中的数据送入累加器3 MOV A,@Ri 间接RAM 中的数据送入累加器4 MOV A,#tata 立即数送入累加器5 MOV Rn,A 累加器内容送入寄存器6 MOV Rn,direct 直接地址单元中的数据送入寄存器7 MOV Rn,#data 立即数送入寄存器8 MOV direct,A 累加器内容送入直接地址单元9 MOV direct,Rn 寄存器内容送入直接地址单元10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元12 MOV direct,#data 立即数送入直接地址单元13 MOV @Ri,A 累加器内容送间接RAM 单元14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元15 MOV @RI,#data 立即数送入间接RAM 单元16 MOV DRTR,#dat16 16 位立即数送入地址寄存器17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器18 MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器21 MOVX @Ri,A 累计器送外部RAM(8 位地址)22 MOVX @DPTR,A 累计器送外部RAM(16 位地址)23 PUSH direct 直接地址单元中的数据压入堆栈24 POP direct 弹栈送直接地址单元25 XCH A,Rn 寄存器与累加器交换26 XCH A,direct 直接地址单元与累加器交换27 XCH A,@Ri 间接RAM 与累加器交换28 XCHD A,@Ri 间接RAM 的低半字节与累加器交换算术操作类指令:1 ADD A,Rn 寄存器内容加到累加器2 ADD A,direct 直接地址单元的内容加到累加器3 ADD A,@Ri 间接ROM 的内容加到累加器4 ADD A,#data 立即数加到累加器5 ADDC A,Rn 寄存器内容带进位加到累加器6 ADDC A,direct 直接地址单元的内容带进位加到累加器7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器8 ADDC A,#data 立即数带进位加到累加器9 SUBB A,Rn 累加器带借位减寄存器内容10 SUBB A,direct 累加器带借位减直接地址单元的内容11 SUBB A,@Ri 累加器带借位减间接RAM 中的内容12 SUBB A,#data 累加器带借位减立即数13 INC A 累加器加114 INC Rn 寄存器加115 INC direct 直接地址单元加116 INC @Ri 间接RAM 单元加117 DEC A 累加器减118 DEC Rn 寄存器减1 1 1219 DEC direct 直接地址单元减120 DEC @Rj 间接RAM 单元减 121 INC DPTR 地址寄存器DPTR 加 122 MUL AB A 乘以B,结果放在A23 DIV AB A 除以B,结果放在A24 DA A 累加器十进制调整布尔变量操作类指令:1 CLR C 清进位位2 CLR bit 清直接地址位3 SETB C 置进位位4 SETB bit 置直接地址位5 CPL C 进位位求反6 CPL bit 置直接地址位求反7 ANL C,bit 进位位和直接地址位相“与”8 ANL C,bit 进位位和直接地址位的反码相“与”9 ORL C,bit 进位位和直接地址位相“或”10 ORL C,bit 进位位和直接地址位的反码相“或”11 MOV C,bit 直接地址位送入进位位12 MOV bit,C 进位位送入直接地址位13 JC rel 进位位为1 则转移14 JNC rel 进位位为0 则转移15 JB bit,rel 直接地址位为1 则转移16 JNB bit,rel 直接地址位为0 则转移17 JBC bit,rel 直接地址位为1 则转移,该位清零逻辑操作数指令:1 ANL A,Rn 累加器与寄存器相“与”2 ANL A,direct 累加器与直接地址单元相“与”3 ANL A,@Ri 累加器与间接RAM 单元相“与”4 ANL A,#data 累加器与立即数相“与”5 ANL direct,A 直接地址单元与累加器相“与”6 ANL direct,#data 直接地址单元与立即数相“与”7 ORL A,Rn 累加器与寄存器相“或”8 ORL A,direct 累加器与直接地址单元相“或”9 ORL A,@Ri 累加器与间接RAM 单元单元相“或”10 ORL A,#data 累加器与立即数相“或”11 ORL direct,A 直接地址单元与累加器相“或”12 ORL direct,#data 直接地址单元与立即数相“或”13 XRL A,Rn 累加器与寄存器相“异或”14 XRL A,direct 累加器与直接地址单元相“异或”15 XRL A,@Ri 累加器与间接RAM 单元单元相“异或”16 XRL A,#data 累加器与立即数相“异或”17 XRL direct,A 直接地址单元与累加器相“异或”18 XRL direct,#data 直接地址单元与立即数相“异或”19 CLR A 累加器清“0”20 CPL A 累加器求反21 RL A 累加器循环左移22 RLC A 累加器带进位位循环左移23 RR A 累加器循环右移24 RRC A 累加器带进位位循环右移25 SWAP A 累加器半字节交换控制转移类指令:1 ACALL addr11 绝对(短)调用子程序2 LCALL addr16 长调用子程序3 RET 子程序返回4 RETI 中数返回5 AJMP addr11 绝对(短)转移6 LJMP addr16 长转移7 SJMP rel 相对转移8 JMP @A+DPTR 相对于DPTR 的间接转移9 JZ rel 累加器为零转移10 CJNE rel 累加器非零转移11 CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移12 CJNE A,#data,rel 累加器与立即数比较,不相等则转移13 CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移14 CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移15 DJNZ Rn,rel 寄存器减1,非零转移16 DJNZ direct,erl 直接地址单元减1,非零转移17 NOP 空操作记住指令表是学好单片机的第一步,也是重要一步.。
51单片机条件转移指令
51单片机条件转移指令51单片机是一种广泛应用于嵌入式系统中的微控制器,具有强大的条件转移指令集,可以实现复杂的逻辑控制。
本文将以51单片机条件转移指令为标题,介绍其基本概念、使用方法以及相关应用。
一、概述条件转移指令是计算机指令中的一种重要类型,它可以根据特定条件的成立与否,决定程序的执行路径。
在51单片机中,条件转移指令用于实现基于条件的分支和循环控制,是实现复杂控制逻辑的重要工具。
二、条件转移指令的基本语法在51单片机中,条件转移指令的基本语法如下:```CJxx 操作数1, 操作数2, 目标地址```其中,CJxx是条件转移指令的助记符,表示不同的条件;操作数1和操作数2是进行比较的操作数;目标地址是程序执行的跳转地址。
三、条件转移指令的常用类型51单片机中常用的条件转移指令包括以下几种类型:1. 条件转移指令(CJNE):用于比较两个操作数的大小,并根据比较结果决定是否跳转到目标地址。
2. 无条件转移指令(JMP):无条件跳转到目标地址。
3. 相对跳转指令(DJNZ):用于实现循环控制,根据操作数的值决定是否跳转到目标地址,并将操作数减一。
四、条件转移指令的使用方法使用条件转移指令需要注意以下几点:1. 确定比较的操作数:根据具体需求,选择合适的操作数进行比较。
2. 确定目标地址:根据条件的成立与否,确定程序执行的跳转地址。
3. 编写条件转移指令代码:根据条件转移指令的语法,编写相应的汇编指令。
4. 调试和测试:在编写完条件转移指令代码后,进行调试和测试,确保程序的逻辑正确。
五、条件转移指令的应用示例以下是一个简单的应用示例,演示了如何使用条件转移指令实现一个LED闪烁的程序:```ORG 0H ; 程序的起始地址MOV P1, #01H ; 将01H送入P1口,点亮LEDLOOP: ; 循环开始CJNE P1, #01H, NEXT ; 如果P1不等于01H,则跳转到NEXTMOV P1, #00H ; 将00H送入P1口,熄灭LEDSJMP LOOP ; 无条件跳转到LOOP,实现循环控制NEXT: ; 跳转到NEXTMOV P1, #01H ; 将01H送入P1口,点亮LEDSJMP LOOP ; 无条件跳转到LOOP,实现循环控制END ; 程序结束```在上述示例中,通过使用CJNE指令和JMP指令,实现了LED的闪烁效果。
MCS--51单片机指令
MCS--51单片机指令一、数据传送类指令1、内部数据存储器间数据传送指令MOV A,#dataMOV A,directMOV A,RnMOV A,@RiMOV Rn,#dataMOV Rn,directMOV Rn,AMOV direct,#dataMOV direct,AMOV direct,RnMOV direct,@RiMOV direct,directMOV @Ri,#dataMOV @Ri,AMOV @Ri,direct2、以DPTR为目的的MOV DPRT,#data 163、访问片外RAMMOVX A,@DPTRMOVX A,@RiMOVX @DPTR,AMOVX @Ri,A4、访问片外ROMMOVC A,@A+DPTR ;(A) ←((A)+(DPTR))MOVC A,@A+PC ;(PC) ←(PC)+1,(A) ←((A)+(PC))5、数据交换指令XCH A,direct ;(A) ↔(direct)XCH A,@Ri ;(A) ↔((Ri))XCH A,Rn ;(A) ↔(Rn)XCHD A,@Ri ;(A3~0)↔ ((Rn)3~0)SWAP A ;(A7~4)↔ (A3~0)6、堆栈操作类指令PUSH direct ;(SP)←(SP)+1,(SP)←(direct)POP direct ;(direct)←(SP),(SP)←(SP)-1二、算术运算类指令1、加法指令ADD A,#dataADD A,directADD A,@RiADD A,Rn2、带进位加法指令ADDC A,#data ;(A)←(A)+(CY)+#dataADDC A,directADDC A,@RiADDC A,Rn3、带借位减法SUBB A,#data ;(A)←(A)-(CY)-#dataSUBB A,directSUBB A,@RiSUBB A,Rn4、加1、减1指令INC AINC directINC @RiINC RnINC DPRTDEC ADEC directDEC @RiDEC Rn5、乘、除法指令乘法指令MUL AB ;(B)←((A)×(B))15~8,(A)←((A)×(B))7~0(CY)←0除法指令DIV AB ;(A)←(A)÷(B)之商,(B)←(A)÷(B)之余数(CY)←0,(OV)←06、十进制调整指令DA A ;若(A)3~0>9或(AC)=1,则(A)3~0←(A)3~0+06H;若(A)7~4>9或(CY)=1,则(A)7~4←(A)7~4+06H三、逻辑运算及移位类指令1、逻辑“与”运算指令ANL direct,AANL direct,#dataANL A,#dataANL A,directANL A,@RiANL A,Rn2、逻辑“或”运算指令ONL direct,AONL direct,#dataONL A,#dataONL A,directONL A,@RiONL A,Rn3、逻辑“异或”运算指令XNL direct,AXNL direct,#dataXNL A,#dataXNL A,directXNL A,@RiXNL A,Rn4、累加器A清零与取反指令CLR A ;(A)←00HCPL A ;(A)←(Ᾱ)5、移位指令RL A ;(A n+1)←(A n),(A0)←(A7)RLC A ;(A n+1)←(A n),(CY)←(A7),(A0)←(CY)RR A ;(A n)←(A n+1),(A7)←(A0)RRC A ;(A n)←(A n+1),(CY)←(A0),(A7)←(CY)四、控制转移类指令1、无条件转移指令LJMP addr16AJMP addr11SJMP relJMP @A+DPTR2、条件转移指令1)累加器判零转移指令JZ rel ;若(A)=0,则跳转JNZ rel ;若(A)≠0,则跳转2)比较转移指令CJNE A,#data,relCJNE A,direct,relCJNE @Ri,#data,relCJNE Rn,#data,rel若目的操作数=源操作数,则执行下一条指令若目的操作数>源操作数,则跳转,CY=0若目的操作数<源操作数,则跳转,CY=13)减1条件转移指令DJNZ direct,rel ;(direct)←(direct)-1若(direct)=0,则执行下一条指令否则,跳转DJNZ Rn,rel ;(Rn)←(Rn)-1若(Rn)=0,则执行下一条指令否则,跳转3、子程序调用及返回指令LCALL addr16ACALL addr11RETRETI4、空操作指令NOP五、位操作类指令1、位传送指令MOV C,bitMOV bit,C2、位置位指令CLR bit ;(bit)←0CLR C ;(CY)←0SETB bit ;(bit)←1SETB C ;(CY)←13、位逻辑指令ANL C,bitANL C,/bitORL C,bitORL C,/bitCPL bitCPL C4、位条件转移指令1)、以CY内容为条件的双字节双周期转换指令JC rel;若(CY)=1,则转移否则,顺序执行JNC rel;若(CY)=0,则转移否则,顺序执行2)、以位地址内容为条件的三字节双周期转移指令JB bit,rel;若(bit)=1,则转移否则,顺序执行JNB bit,rel;若(bit)=0,则转移否则,顺序执行JBC bit,rel;若(bit)=1,则转移,(bit)←0否则,顺序执行。
MCS-51单片机的指令
MCS-51单⽚机的指令MCS-51单⽚机的指令⼀.数据传送类指令(29条).1 通⽤传送指令(16条)格式:MOV ⽬的操作数,源操作数功能:把第⼆操作数指定的字节内容传送到第⼀操作数指定的单元中。
不影响源操作数内容,不影响别的寄存器和标志。
根据⽬的操作数的不同,通⽤传送指令⼜分为以下⼏种类型:1.1 以累加器A为⽬的操作数的传送类指令(4条)指令助记符及功能说明如下:⽬的操作数源操作数功能说明源操作数寻址⽅式MO V A, direct ;(A)←(direct)直接寻址MO V A, @Ri ;(A)←((Ri))寄存器间接寻址MO V A, Rn ;(A)←(Rn)寄存器寻址MO A, #data ;(A)←data ⽴即寻址V这类指令的功能是将源操作数送到⽬的操作数A中。
指令执⾏后的结果:除了奇偶标志P始终跟踪A中数据的奇偶性外,不影响PSW中的其他标志位。
1.2 以Rn为⽬的操作数的传送类指令(3条)指令助记符及功能说明如下:⽬的操作数源操作数功能说明源操作数寻址⽅式MOVRn, A ;(Rn)←(A) 寄存器寻址MO V Rn, direct ;(Rn)←(direct)其中,Rn是R0,…,R7中的任意⼀个。
例1 若(A)=20H,则执⾏指令MOV R3, A后,(R3)=20H。
注意:Rn寄存器之间不能直接传送数据。
如指令“MOV R1, R7”是错误的。
该类指令执⾏后,不影响PSW中的标志位。
1.3. 以直接地址directX为⽬的操作数的传送类指令(5条)指令助记符及功能说明如下:⽬的操作数源操作数功能说明源操作数寻址⽅式M OV directX, A ;(directX)←(A)寄存器寻址M directX, Rn ;(directX)←寄存器寻址OV (Rn)M OV directX, directY ;(directX)←(directY)直接寻址M OV directX, @Ri ;(directX)←((Ri))寄存器间接寻址M OV directX, #data ;(directX)←data⽴即寻址这类指令的功能是把源操作数的内容送到直接地址directX中去。
51单片机汇编指令总结
51单片机汇编指令总结数据传输指令一.片内RAM数据传输指令1.以累加器A为目的操作数的指令:MOV A , RnMOV A , directMOV A , @RiMOV A , #data2.以寄存器Rn为目的操作数的指令:MOV Rn , AMOV Rn ,directMOV Rn ,data3.以直接地址为目的操作数的指令:MOV direct ,AMOV direct ,RnMOV direct1 ,derect2MOV direct ,@RiMOV direct ,#data4.间接地址为目的操作数的指令:MOV @Ri ,AMOV @Ri ,directMOV @Ri ,#data5.十六位数据传送指令:MOV DPTR , #data16二.累加器A与片外RAM数据传送指令:MOVX A ,@RiMOVX A , @DPTRMOVX @Ri ,AMOVX @DPTR ,A三.查表寻址:MOVC A ,@A+DPTR (先PC←(PC)+1,后A←((A)+(DPTR)))+MOVC A ,@A+PC (先PC←(PC)+1,后A←((A)+(PC)))四.交换指令:1.字节交换指令:XCH A ,RnXCH A ,directXCH A ,@Ri2.半字节交换指令:XCHD A ,@Ri3.累加器半字节交换指令:SWAP A五.栈操作指令:1.PUSH(入栈指令)PUSH direct2.POP(出栈指令)POP direct算术运算指令:一.加法减法指令:1.加法指令:ADD A ,RnADD A ,directADD A ,@RiADD A ,#data2.带进位加法指令:ADDC A ,Rn A←(A)+(Rn)+CYADDC A ,direct A←(A)+(direct)+CYADDC A ,@Ri A←(A)+((Ri))+CYADDC A ,#data A←(A)+(data)+CY3.带借位减法指令:SUBB A ,Rn A←(A)-CY-(Rn)SUBB A ,direct A←(A)-CY-(direct)SUBB A ,@Ri A←(A)-CY-((Ri))SUBB A ,#data A←(A)-CY-#data二.乘法除法指令:1.乘法指令:MUL AB BA←(A) ×(B)高字节放在B中,低字节放在A中2.除法指令:DIV AB A←(A) ÷(B)的商,(B) ←(A) ÷(B)的余数三.加1减1指令:1.加1指令:INC A A←(A)+1INC Rn Rn←(Rn)+1INC direct direct←(direct)+1INC @Ri (Ri) ←((Ri))+1INC DPTR DPTR←(DPTR)+12.减1指令:DEC ADEC RnDEC directDEC @Ri四.十进制调制指令:DA A 调整累加器A的内容为BCD码逻辑操作指令:一.逻辑与、或、异或指令:1.逻辑与指令:ANL A ,RnANL A ,directANL A ,@RiANL A ,#data2.逻辑或这令:ORL A ,RnORL A ,directORL A ,@RiORL A ,#dataORL direct ,AORL direct ,#data3.逻辑异或指令:XRL A ,RnXRL A ,directXRL A ,@RiXRL A ,#dataXRL direct ,AXRL direct ,#data二.清零、取反指令:1.累加器A清零指令:CRL A2.累加器A取反指令:CPL A三.循环位移指令:1.累加器A循环左移指令:RL A2.累加器A循环右移指令:RR A3.累加器A连同进位位循环左移指令:RLC A4. 累加器A连同进位位循环右移指令:RRC A控制转移指令:一.无条件转移指令:1.绝对转移指令:AJMP addr11 (先PC+2,然后将addr11的低十位传给PC,PC的高六位不变)2.长转移指令:LJMP addr16 (用addr16的值替换PC的值)3.相对转移(短转移)指令:SJMP rel(带符号的偏移字节数)(PC+2,再加rel赋值给PC)4.间接转移指令:JMP @A+DPTR (A)+(DPTR) →(PC)二.条件转移指令:1.累加器判零转移指令:JZ rel 先PC+2;后判断,A为0时转移,PC+rel赋值给PC;否则顺序执行JNZ rel 先PC+2,后判断,A不为0时转移,PC+rel赋值给PC;否则顺序执行2.比较转移指令:CJNE 目的操作数,源操作数,relCJNE A,direct,rel 先PC+3传回PC,再比较目的操作数和原操作数CJNE A,#data,rel 目>源时,程序转移,PC+rel传回PC且CY=0CJNE Rn,#data,rel 目=源时,程序顺序执行CJNE @Ri,#data,rel 目<源时,程序转移,PC+rel传回PC且CY=13.减一非0指令:DJNZ Rn,rel 先PC\+2,Rn-1,当Rn为0时程序顺序执行,否则PC+rel传回PCDJNZ direct,rel 先PC+3,direct-1,direct为0时程序顺序执行,否则PC+rel 传回PC二.子程序调用、返回指令:1.绝对调用指令ACALL:ACALL addr11 先PC+2,SP+1将PC的低八位存入SP;SP+1,将PC的高八位存入SP。
MCS-51单片机指令系统-数据传送类指令
2) 半字节交换指令 )
XCHD A,@Ri , SWAP A )=30H,( ,(30H)= )=67H, 例:若(R0)= )= ,( )= , )=20H。 (A)= )= 。 执行 XCHD A,@R0 后, , )=27H,( ,(30H)= )=60H。 (A)= )= ,( )= 。 )=30H,执行 例 若(A)= )= ,执行SWAPБайду номын сангаасA 后, )=03H。 (A)= )= 。
(4) 数据交换指令
数据传送指令一般都是将操作数自源地址单元传送到目的 地址单元,指令执行后,源地址单元的操作数不变,目的 地址单元的操作数则修改为源地址单元的操作数。交换指 交换指 令数据作双向传送,涉及传送的双方互为源地址、 令数据作双向传送,涉及传送的双方互为源地址、目的地 址,指令执行后每方的操作数都修改为另一方的操作数。 指令执行后每方的操作数都修改为另一方的操作数。 数据交换指令共有如下5条指令:
A
MOV @Ri, ,
direct #data
,(A) 例 若(R1)=56H,( )=35H ) ,( 执行 MOV @R1,A 指令 , 结果:( 结果:(56H)=35H :( )
访问片内RAM的一般传送指令操作关系图
累加器A
Direct 直接地址
@Ri间址
Rn寄存器
Data立即数
设内部RAM(30H)=40H (40H)=10H, RAM(30H)=40H, 例 设内部RAM(30H)=40H,(40H)=10H, (10H)=00H(P1)=0CAH, (10H)=00H(P1)=0CAH,分析以下程序执行后各单元 及寄存器、P2口的内容 口的内容。 及寄存器、P2口的内容。
(2) 读、写片外 写片外RAM 指令
第4章MCS51单片机的指令系统
1、立即寻址
若指令的操作数是一个8位二进制数或16位二进制数,就 称为立即寻址。指令中出现的操作数就称为立即数。
例如:MOV A,#3AH;A ← 3AH
MOV DPTR,#8000H 在MCS51系统中采用“#”来表示后面的是立即数。
16
2、寄存器寻址
寄存器寻址就是以通用寄存器的内容作为操作数,在指令 的助记符中直接以寄存器的名字来表示操作数位置。这种 寻址方式如果使用了另一个操作数,那么另一操作数必须 是累加器A,这些指令都是单字节指令
在汇编语言编程时,数据的存放、传送、运算都要通过 指令来完成,编程者必须自始至终都要十分清楚操作数 的位置以及如何将它们传送至适当的寄存器中去运算。 因此,如何从各个存放操作数的区域去寻找和提取操作 数就变得十分重要。
所谓寻址方式就是如何通过确定操作数所在的位置(地 址)从而把操作数提取出来的方法。
(补码数)。相对转移指令所在的地址称为源地址,转移
后的地址称为目的地址 。程序的转移范围以PC当前值为中
心,介于-128~+127之间
目的地址=源地址十转移指令字节数十rel
例如SJMP rel指令的机器码 是“80H,rel”,两个字节。 设指令所在地址为2000H, rel为54H,则转移地址(目的 地址)为:
4.1 指令和指令程序
所有软件,都要翻译成计算机能直接识别和执行 的命令,才能由计算机去执行。这种计算机能直 接识别和执行的命令称为指令。一台计算机所能 执行的全部指令的集合称为这台计算机的指令系 统。指令”: CPU能直接识别和执行的命令。 指令系统:CPU所能执行的全部指令的集合。
20
寄存器间接寻址的寻址范围: 1)片内RAM低128单元:这里只能用R0和R1作为间接 寻址寄存器。 2)片外RAM 64KB:使用DPTR作为间接寻址寄存器。 3)片外RAM低256单元:也可以使用R0和R1。MOVX 4)在执行PUSH(压栈)和POP(出栈)指令时,采 用堆栈指针SP作寄存器间接寻址。
51单片机或命令的用法
51单片机或命令的用法51单片机是一种常见的微控制器,广泛应用于各种嵌入式系统中。
以下是51单片机常用指令的用法:1、数据传输指令数据传输指令主要用于在寄存器、内存单元和输入/输出端口之间进行数据传输。
MOV:将源操作数传送到目标操作数。
MOV A, #data:将8位立即数data传送到累加器A中。
MOV R0, R2:将寄存器R2的值传送到寄存器R0中。
MOV @R0, A:将累加器A的值传送到R0所指定的存储单元中。
MOV DPTR, #data:将16位立即数data传送到数据指针DPTR寄存器中。
2、算术指令算术指令主要用于对两个操作数进行算术运算,并将结果存储在目标操作数中。
ADD:将两个操作数相加,并将结果存储在目标操作数中。
ADD A, R1:将累加器A与R1的值相加,将结果存入累加器A中。
ADD A, #data:将累加器A与8位立即数data相加,将结果存入累加器A中。
ADDC:在相加时,将进位标志位C的状态自动加到结果的最低有效位上。
ADDC A, R2:将累加器A与R2的值以及进位标志位C相加,将结果存入累加器A中。
3、控制转移指令控制转移指令主要用于实现程序的跳转和流程控制。
AJMP:无条件跳转到指定地址。
LJMP:长跳转到指定地址。
SJMP:短跳转到指定地址。
4、位操作指令位操作指令主要用于对单个位进行操作。
SETB:设置位。
CLR:清除位。
CPL:取反位。
:定时器是51单片机中的一个重要模块,它可以用来产生精确的定时/计数功能,常用于测量时间间隔或者产生定时中断。
51单片机的定时器有三种工作模式:模式0(工作方式1):当m1,m2设置成0,0时,定时器/计数器就工作在方式0,工作方式0是一种13位定时器/计数器方式,可用来测量外信号的脉冲宽度所持续的时间。
模式1(工作方式2):工作方式1为16位定时器/计数其结构和操作与工作方式0基本相同,唯一的区别是工作方式1的计数器由tl0的8位和th0的8位共同组成16位的计数器,其定时时间为:t=(2^16-t0初值)×时钟周期×12 。
51单片机汇编指令集(附记忆方法)
51单片机汇编指令集一、数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC(Move Code)读取程序存储器数据表格的数据传送;MOVX (Move External RAM) 对外部RAM的数据传送;XCH (Exchange) 字节交换;XCHD (Exchange low-order Digit) 低半字节交换;PUSH (Push onto Stack) 入栈;POP (Pop from Stack) 出栈;二、算术运算类指令(8种助记符)ADD(Addition) 加法;ADDC(Add with Carry) 带进位加法;SUBB(Subtract with Borrow) 带借位减法;DA(Decimal Adjust) 十进制调整;INC(Increment) 加1;DEC(Decrement) 减1;MUL(Multiplication、Multiply) 乘法;DIV(Division、Divide) 除法;三、逻辑运算类指令(10种助记符)ANL(AND Logic) 逻辑与;ORL(OR Logic) 逻辑或;XRL(Exclusive-OR Logic) 逻辑异或;CLR(Clear) 清零;CPL(Complement) 取反;RL(Rotate left) 循环左移;RLC(Rotate Left throught the Carry flag) 带进位循环左移;RR(Rotate Right) 循环右移;RRC (Rotate Right throught the Carry flag) 带进位循环右移;SWAP (Swap) 低4位与高4位交换;四、控制转移类指令(17种助记符)ACALL(Absolute subroutine Call)子程序绝对调用;LCALL(Long subroutine Call)子程序长调用;RET(Return from subroutine)子程序返回;RETI(Return from Interruption)中断返回;SJMP(Short Jump)短转移;AJMP(Absolute Jump)绝对转移;LJMP(Long Jump)长转移;CJNE (Compare Jump if Not Equal)比较不相等则转移;DJNZ (Decrement Jump if Not Zero)减1后不为0则转移;JZ (Jump if Zero)结果为0则转移;JNZ (Jump if Not Zero) 结果不为0则转移;JC (Jump if the Carry flag is set)有进位则转移;JNC (Jump if Not Carry)无进位则转移;JB (Jump if the Bit is set)位为1则转移;JNB (Jump if the Bit is Not set) 位为0则转移;JBC(Jump if the Bit is set and Clear the bit) 位为1则转移,并清除该位;NOP (No Operation) 空操作;五、位操作指令(1种助记符)CLR 位清零;SETB(Set Bit) 位置1。
51单片机汇编指令表
以下是一些常见的51单片机(如8051系列)的汇编指令:
1. 数据传送指令:
- MOV:将一个数据或寄存器的值移动到另一个寄存器或存储器位置。
- MOVC:将数据从外部代码存储器复制到累加器或寄存器。
2. 算术运算指令:
- ADD:将累加器与另一个寄存器或存储器中的值相加。
- SUB:从累加器中减去另一个寄存器或存储器中的值。
- INC:将累加器或寄存器的值加1。
- DEC:将累加器或寄存器的值减1。
3. 逻辑运算指令:
- ANL:对累加器和另一个寄存器或存储器中的值进行逻辑与操作。
- ORL:对累加器和另一个寄存器或存储器中的值进行逻辑或操作。
- XRL:对累加器和另一个寄存器或存储器中的值进行逻辑异或操作。
- CPL:对累加器或寄存器中的值进行按位取反操作。
4. 条件分支指令:
- CJNE:比较两个值,并在不相等时跳转到指定的地址。
- DJNZ:递减累加器或寄存器,并在结果不为零时跳转到指定的地址。
5. 跳转指令:
- JMP:无条件跳转到指定的地址。
- SJMP:短跳转,跳转到相对于当前地址的指定偏移量。
- AJMP:绝对跳转,跳转到指定的地址。
- LCALL:长调用,将当前地址入栈并跳转到指定的子程序地址。
6. 位操作指令:
- SETB:将某个位设置为1。
- CLR:将某个位清零。
- JB:如果某个位为1,则跳转到指定地址。
- JNB:如果某个位为0,则跳转到指定地址。
单片机指令表汇总
51单片机指令表汇总51单片机是一种广泛应用的微控制器,其指令集是进行编程的基础。
下面将51单片机的指令表进行汇总,以帮助初学者更好地理解其指令集。
一、数据传输指令1、MOV指令:将源操作数的内容传送到目标操作数。
2、XCH指令:将两个操作数的内容互换。
3、MOVC指令:从外部存储器将数据传送到目标操作数。
4、MOVX指令:将外部存储器中的数据传送到目标操作数。
5、PUSH指令:将数据压入堆栈。
6、POP指令:从堆栈中弹出数据。
二、算术运算指令1、ADD指令:将两个操作数相加,并将结果存放在目标操作数中。
2、SUB指令:从目标操作数中减去源操作数,并将结果存放在目标操作数中。
3、MUL指令:将两个操作数相乘,并将结果存放在目标操作数中。
4、DIV指令:将目标操作数除以源操作数,并将结果存放在目标操作数中。
5、ANL指令:对目标操作数和源操作数进行按位与运算,并将结果存放在目标操作数中。
6、ORL指令:对目标操作数和源操作数进行按位或运算,并将结果存放在目标操作数中。
7、XRL指令:对目标操作数和源操作数进行按位异或运算,并将结果存放在目标操作数中。
8、CPL指令:对目标操作数进行按位取反运算,并将结果存放在目标操作数中。
9、INC指令:将目标操作数加1。
10、DEC指令:将目标操作数减1。
11、ASR指令:将目标操作数右移n位,最高位用符号位补齐。
12、LSR指令:将目标操作数右移n位,最低位用0补齐。
13、ROL指令:将目标操作数循环左移n位,最高位移入最低位。
14、ROR指令:将目标操作数循环右移n位,最低位移入最高位。
单片机汇编指令表一、概述在单片机的世界里,汇编语言扮演着举足轻重的角色。
它是一种低级语言,能够直接与硬件进行交互,提供高效的代码执行效率。
下面,我们将详细列出一些常见的单片机汇编指令,以及它们的功能。
二、指令表1、MOV指令:用于将数据从一个寄存器移动到另一个寄存器。
例如,MOV R1, R2将把 R2的内容移动到 R1中。
51单片机教程:单片机数据传递类指令
51单片机教程:单片机数据传递类指令单片机数据传递类指令(3)以直接地址为目的操作数的指令MOV direct,A 例: MOV 20H,AMOV direct,Rn MOV 20H,R1MOV direct1,direct2 MOV 20H,30HMOV direct,@Ri MOV 20H,@R1MOV direct,#data MOV 20H,#34H(4)以间接地址为目的操作数的指令MOV @Ri,A 例:MOV @R0,AMOV @Ri,direct MOV @R1,20HMOV @Ri,#data MOV @R0,#34H(5)十六位数的传递指令MOV DPTR,#data168051是一种8位机,这是唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入DPTR中去。
其中高8位送入DPH,低8位送入DPL。
例:MOV DPTR,#1234H,则执行完了之后DPH中的值为12H,DPL中的值为34H。
反之,如果我们分别向DPH,DPL送数,则结果也一样。
如有下面两条指令:MOV DPH,#35H,MOV DPL,#12H。
则就相当于执行了MOV DPTR,#3512H。
数据传递类指令综合练习:给出每条指令执行后的结果上机练习:MOV 23H,#30HMOV 12H,#34HMOV R0,#23HMOV R7,#22HMOV R1,12HMOV A,@R0MOV 34H,@R1(23h)=30h(12h)=34h(R0)=23H(R7)=22H(R1)=12H(A)=30H(34H)=34HMOV 45H,34HMOV DPTR,#6712H MOV 12H,DPHMOV R0,DPLMOV A,@R0(45H)=34H(DPTR)=6712H(12H)=67H(R0)=12H(A)=67H说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)数据传送类(28条) (2)算术操作类(24条 (3)逻辑运算类(25条) (4)控制转移类(17条) (5)位操作类(17条)
2020/11/29
指令中符号的意义:
P.33~34
Rn 当前寄存器区的8个工作寄存器R0~R7(n=0~7)。
;自循环
【例B3-7】编程将片外数据存储器2040H单元的内容传送到A1F8H 单元。
ORG 0600H
MOV DPTR,#2040H ;DPTR指向片外 2040H单元
MOVX A,@DPTR
;2040H单元内容送入A
MOV DPTR,#0A1F8H ;DPTR指向片外A1F8H单元
MOVX @DPTR,A
DPTR 数据指针,可用作16位的数据地址寄存器。
bit 内部RAM或特殊功能寄存器中的直接寻址位。
C(或Cy) 进位标志位或位处理机中的累加器。
addr11 11位目的地址
addr16 16位目的地址
@ 间接寻址寄存器前缀,如@Ri,@A+DPTR
(X) X中的内容。如(40H)
((X)) 由X寻址的单元中的内容。如((R0))也可(R0)
;A的内容送入A1F8H单元
HP2:020/1S1/2J9 MP HP
【例4-3】设计一子程序,功能为:根据30H单元中的数x(0~9之 间)查平方表,求出x相应的平方y存50H单元。x和y均为单字 节数。
用DPTR作基址的方法:
地址 机器码
汇编语言源程序
ORG 0300H
0300 E5 30 PFSUB:MOV A ,30H
→ 箭头右边的内容被箭头左边的内容所取代。 2020/11/29
P.16
2.4.2 内部数据存储器空间 (RAM:随机存取存储器,可读可写,断电丢失
)
128个单元,每单元8位即1字节(8b=1B),字节地址为00H~7FH
■指寻令。址中方指式明:
操作数的方式
位地址 bit (00H~7FH)
7FH . . . 位地址 . . . 78H
P52-14 用栈交换ACC与B内容?
【例B3-6】编程将片外数据存储器2380H单元的内容传送到片内 30H单元。
ORG 0800H
MOV DPTR,#2380H ; DPTR指向片外2380H单元
MOVX A,@DPTR ;读取2380H单元内容送入A
MOV 30H,A
;存入片内30H单元
LP: SJMP LP
;取原3AH单元数据到A中 ;A中原3AH单元数据与原3BH单元数据交换 ;将A中原3BH单元数据交换到3AH单元中
用堆栈实现交换:
START: PUSH 3AH PUSH 3BH POP 3AH POP 3BH
2020/11/29
;将原3AH单元数据压栈 ;将原3BH单元数据压栈 ;从栈顶弹出原3BH单元数据给3AH单元 ;从栈顶弹出原3AH单元数据给3BH单元
;取自变量x
0302 90 03 09
MOV DPTR ,#0309H ;或 MOV DPTR,#TAB
0305 93 0306 F5 50
MOVC A ,@ A + DPTR ;查表得相应函数值
(x + 0309H)
MOV 50H ,A
;存结果y
0308 22
RET
0309 00 01 04 09 10 TAB:DB 00H,01H,04H,09H,10H;平方表0 1 4 9 16
030E 19 24 31 40 51
DB 19H,24H,31H,40H,51H;25 36 49 64 81
2020/11/29
【思考】指出下列非法指令违背了什么样的概念或规则?
1. MOV @R3, A
9. MOV 201AH ,A
4条指令,12字节长
通过A转送
MOV A , 36H MOV 40H, A MOV 41H, A MOV 42H, A MOV 43H, A
5条指令,10字节长
用R0间接寻址
MOV A , 36H MOV R0 , #40H MOV @R0, A INC R0 MOV @R0, A INC R0 MOV @R0, A INC R0 MOV @R0, A 9条指令,11字节长,
2020/11/29
数据传送类指令(2)
变址寻址
源操作数
目的操作数
例:MOV SP,#6FH ;设定栈底指针
……存到堆栈(保护现场)
PUSH B
……
POP B
;恢复原B 、ACC内容(恢复现场)(后进先出)
202P0/O11P/29 ACC
用交换指令方法:
START: MOV A , 3AH XCH A , 3BH XCH A , 3AH
(共128个位)
128个 片内RAM字节单元
07H . . . 位地址 . . . 00H
RS1 RS0
R.7 .R0
1
1
直接地址direct
(00H~7FH)
寄存器间接寻址@Ri
(@R0、@R1)
R7
.. 1 0
R0 R7
.. 0 1
R0
2020/11/29
R7
.. 0 0
R0
由PSW中的RS1、RS0位
Ri 当前寄存器区中可作间接寻址寄存器的R0、R1(i=0,1)。
Direct 直接地址,内部RAM或SFR的8位字节地址。如 0E0H
#data 包含在指令中的8位立即数。如 #0EH
#data16 包含在指令中的16位立即数。如 #0A85EH
rel 相对转移指令中的偏移量,为8位的带符号补码数。
可通过循环程序实现
2020/11/29
PC 2 0 0 0 H PC
PC:16位可预置加1计数器 •每取一个字节指令代码,自动加1 •执行跳转指令时将目标地址置入PC
PC(程序计数器,程序指针): 始终存放着下一条CPU要取出执
行的指令在程序存储器中的地址。 始终指向要取出执行的下一条指令 代码存放单元,
寄存器寻址 Rn
(R0~R7)
选择四个区之一的8个单元 兼作工作寄存器R0~R7使用
数据传送指令(1) 其他例:
【例B3-4】 R0内容送R7: MOV A,R0 MOV R7, A
【例B3-5】(36H)单元内容送(40H)~(43H)单元。
均用直接地址传送
MOV 40H, 36H MOV 41H, 36H MOV 42H, 36H MOV 43H, 36H