R单片机指令系统

合集下载

指令系统与汇编语言程序设计

指令系统与汇编语言程序设计

1010011i n
85 n1 n2
MOV DPTR,#d1d2 ;DPTR←d1d2
90 d1 d2
习题1:找出配对指令,实精现选p反pt 向传送。
《单片机原理及应用》教学课件
例2-4-1:顺序执行下列指令序列,求每一步执行结果。
MOV A,#30H
;A= 30H
MOV 4FH,A
;(4FH)= 30H
2-1 指令格式
一. 汇编语言指令格式 [标号:]操作码 操作数1,操作数2[;注释]
换行表示一条指令结束。 例: LOOP: MOV A,#40H ;取参数
1.标号:指令的符号地址 2.操作码:指明指令功能。 3.操作数:指令操作对象 数据、地址、寄存器名及约定符号。 4.注释行:说明指令在程序中的作用。
第2章 指令系统与汇编语言程序设计 2-1 指令格式 2-2 指令寻址方式 2-3 状态标志 2-4 MCS-51指令系统
《单片机原理及应用》教学课件
单片机指令系统概述
一、MCS-51指令分类
MCS-51单片机共有111条指令。 1.按指令所占的字节数分类
①单字节指令49条 ②双字节指令46条 ③三字节指令16条 每条指令的平均字节数:
精选ppt
《单片机原理及应用》教学课件
例:查表法求Y=X2。设X(0≤X≤15)在片内RAM的20H单元中,要 求将查表求Y,存入片内RAM21H单元。
2)指令地址
1000H 1002H 1004H 1005H 1007H 1008H 100BH
源程序
ORG 1000H
;程序起始地址
SQU: MOV A,20H ;取X
操作码和操作数是指令主体。
精选ppt

单片机汇编语言指令集

单片机汇编语言指令集

汇编语言的所有指令数据传送指令集MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,dataXCHG功能: 交换两个操作数的数据语法: XCHG格式: XCHG r1,r2 XCHG m,r XCHG r,mPUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数POP 操作数格式: PUSH r PUSH M PUSH data POP r POP mPUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPALEA,LDS,LES功能: 取地址至寄存器语法: LEA r,m LDS r,m LES r,mXLAT(XLATB)功能: 查表指令语法: XLAT XLAT m算数运算指令ADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,Z,S,OSUB,SBB功能:减法指令语法: SUB OP1,OP2 SBB OP1,OP2格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data影响标志: C,P,A,Z,S,OINC,DEC功能: 把OP的值加一或减一语法: INC OP DEC OP格式: INC r/m DEC r/m影响标志: P,A,Z,S,ONEG功能: 将OP的符号反相(取二进制补码)语法: NEG OP格式: NEG r/m影响标志: C,P,A,Z,S,OMUL,IMUL功能: 乘法指令语法: MUL OP IMUL OP格式: MUL r/m IMUL r/m影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志)DIV,IDIV功能:除法指令语法: DIV OP IDIV OP格式: DIV r/m IDIV r/mCBW,CWD功能: 有符号数扩展指令语法: CBW CWDAAA,AAS,AAM,AAD功能: 非压BCD码运算调整指令语法: AAA AAS AAM AAD影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)DAA,DAS功能: 压缩BCD码调整指令语法: DAA DAS影响标志: C,P,A,Z,S位运算指令集AND,OR,XOR,NOT,TEST功能: 执行BIT与BIT之间的逻辑运算语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位SHR,SHL,SAR,SAL功能: 移位指令语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL影响标志: C,P,Z,S,OROR,ROL,RCR,RCL功能: 循环移位指令语法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL 影响标志: C,P,Z,S,O程序流程控制指令集CLC,STC,CMC功能: 设定进位标志语法: CLC STC CMC标志位: CCLD,STD功能: 设定方向标志语法: CLD STD标志位: DCLI,STI功能: 设定中断标志语法: CLI STI标志位: ICMP功能: 比较OP1与OP2的值语法: CMP r/m,r/m/data标志位: C,P,A,Z,OJMP功能: 跳往指定地址执行语法: JMP 地址JXX功能: 当特定条件成立则跳往指定地址执行语法: JXX 地址注:A: ABOVE,当C=0,Z=0时成立B: BELOW,当C=1时成立C: CARRY,当弁时成立CXZ: CX寄存器的值为0(ZERO)时成立E: EQUAL,当Z=1时成立G: GREATER(大于),当Z=0且S=0时成立L: LESS(小于),当S不为零时成立N: NOT(相反条件),需和其它符号配合使用O: OVERFLOW,O=1时成立P: PARITY,P=1时成立PE: PARITY EVEN,P=1时成立PO: PARITY ODD,P=0时成立S: SIGN,S=1时成立Z: ZERO,Z=1时成立LOOP功能: 循环指令集语法: LOOP 地址LOOPE(Z)地址LOOPNE(Z) 地址标志位: 无CALL,RET功能: 子程序调用,返回指令语法: CALL 地址RET RET n标志位: 无INT,IRET功能: 中断调用及返回指令语法: INT n IRET标志位: 在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆栈中的标志值弹回寄存器字符串操作指令集MOVSB,MOVSW,MOVSD功能: 字符串传送指令语法: MOVSB MOVSW MOVSD标志位: 无CMPSB,CMPSW,CMPSD功能: 字符串比较指令语法: CMPSB CMPSW CMPSD标志位: C,P,Z,S,OSCASB,SCASW功能: 字符串搜索指令语法: SCASB SCASW标志位: C,P,Z,S,OLODSB,LODSW,STOSB,STOSW功能: 字符串载入或存贮指令语法: LODSB LODSW STOSB STOSW标志位: 无REP,REPE,REPNE功能: 重复前缀指令集语法: REP 指令S REPE 指令S REPNE 指令S标志位: 依指令S而定对于IBM PC机它有它的指令系统,其中包括:数据传送指令、串处理指令、算术指令、控制移动指令、逻辑指令、处理机控制指令。

AVR单片机指令系统

AVR单片机指令系统

第五章A V R单片机指令系统计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。

计算机只能识别和执行机器语言的指令。

为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。

汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。

AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。

SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令,而我们所做的11个实验程序仅用了34条指令,我们重点讲这34条指令,其余指令就可自学了。

AVR器件(指令速查表)118条指令器件1.不带进位加法ADD一不带进位加说明:两个寄存器不带进位C标志加,结果送目的寄存器Rd。

操作:Rd✍Rd+Rr语法:操作码:程序计数器:ADDRd,RrO≤d≤31,0≤r≤31PC✍PC+1例子:。

(实践操作程序4411.ASM)实践操作例子*.ASM,必须编译生成*.OBJ文件才可调试,如要修改*.ASM,必须修改文件属性,去掉*.ASM只读文件属性2.带进位加法ADC-一带进位加说明:两个寄存器和C标志的内容相加,结果送目的寄存器Rd。

操作:Rd←Rd+Rr+C语法:操作码:程序计数器:ADCRd,Rr0≤d≤31,0≤r≤31PC←PC+1例子:(实践操作程序4412.ASM)3.减1指令DEC一减1说明:寄存器Rd的内容减1,结果送目的寄存器Rd中。

操作:Rd✍Rd-l语法:操作码:程序计数器:DECRd0≤d≤31PC✍PC十1例子:(实践操作程序4426.ASM)4.立即数比较CPI——带立即数比较说明:该指令完成寄存器Rd和常数的比较操作。

寄存器的内容不改变。

该指令后能使用所有条件转移指令。

操作:Rd-K语法:操作码:程序计数器:CPIRd,K16≤d≤31,0≤K≤255PC✍PC+1例子:(实践操作程序4463.ASM)5.带立即数与ANDI——立即数逻辑与;全1为1,有0即0说明:寄存器Rd的内容与常数逻辑与,结果送目的寄存器Rd。

第9章 单片机的指令系统说明

第9章 单片机的指令系统说明

计算机总是把操作数当作有符号数(补码形式)看待 并影响PSW的相关标志位。影响情况如下: 进位/借位标志CY: 两数和的D7位有进位时,(CY)=1,否则,(CY)=0。 半进位/借位标志AC: 两数和的D3位有进位时,(AC)=1,否则,(AC)=0。 溢出标志OV: 两数和的D7,D6位只有一位有进位时,(OV)=1;否则, (OV)=0,即OV=C6⊕C7。 奇偶标志P: 当累加器A中“1”的个数为奇数时,(P)=1;为偶数 时(P)=0。
例2 把片外RAM的36H单元中的数据送到片外RAM的 1200H单元。 〈分析〉(36H)→(1200H) 程序如下: MOV R1,#36H MOVX A ,@R1 MOV DPTR,#1200H MOVX @DPTR, A <想一想>下面的程序可以实现吗? MOV DPTR, #1200H MOV R1,#36H MOV @DPTR,@R1 注意:片外RAM之间不能直接传送数据,必须经过累加器 A
例5 试分析8051单片机执行下述指令后,累加器A和PSW各标 志位的变化。 MOV A,#0A5H ADD A,#0CFH 解: (A)=10100101B + Data=11001111B CY 01110100B C7 C6 AC (CY)=C7=1;(AC)=1;溢出标志(OV)=C7⊕C6=1⊕0=1,有 溢出;(P)=0。执行结果:(A)=74H。 若为无符号数运算, (CY)=1,表示结果超出(0~255) 范围。若为带符号数运算,因(-49)+(-91)=-140,超出了 (-128~+127)的范围,所以OV=1溢出。
半字节交换 XCHD A,@Ri SWAP A
;(A3~0)((Ri)3~0) ;(A3~0)(A7~4)

单片机的指令系统练习题

单片机的指令系统练习题

单片机的指令系统习题一、选择题1、执行下列3条指令后,30H单元的内容是()。

MOV R0,#30HMOV 40H,#0EHMOV @R0,40HA)40H B)30H C)0EH D)FFH2、在堆栈中压入一个数据时()。

A)先压栈,再令SP+1 B)先令SP+1,再压栈C)先压栈,再令SP-l D)先令SP-1,再压栈3、在堆栈操作中,当进栈数据全部弹出后,这时的SP应指向()。

A)栈底单元 B)7FHC)栈底单元地址加1 D)栈底单元地址减l4、指令MOVC A,@A+PC源操作数的寻址方式是()。

A)寄存器寻址方式 B)寄存器间接寻址方式C)直接寻址方式 D)变址寻址方式5、ANL 20H,#30H指令中,源操作数的寻址方式是()。

A)立即寻址方式 B)直接寻址方式C)位寻址方式 D)相对寻址方式6、ANL C,/30H指令中,源操作数的寻址方式是()。

A)立即寻址方式 B)直接寻址方式C)位寻址方式 D)相对寻址方式7、Jz rel指令中,操作数rel的寻址方式是()。

A)立即寻址方式 B)直接寻址方式C)位寻址方式 D)相对寻址方式8、Jz rel指令中,是判断()中的内容是否为0。

A) B)B C)C D)PC9、MOVX A,@DPTR指令中源操作数的寻址方式是()A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址10、下面条指令将MCS-51的工作寄存器置成3区()A)MOV PSW,#13H (B)MOV PSW,#18H11、MOV C,00H指令中源操作数的寻址方式是()A)位寻址 B)直接寻址 C)立即寻址 D)寄存器寻址二、填空题1、8051单片机共有种寻址方式。

访问外部数据存储器应采用寻址方式。

2、访问外部数据存储器应采用寻址方式;查表应使用寻址方式。

3、在8051单片机中,堆栈操作的指令有两个。

4、在8051单片机中,子程序调用的指令有两个。

5、CJNE指令都是字节指令。

单片机的指令系统

单片机的指令系统
80C51单片机的指令系统具有较强的控制操作类指令,容易实现“面向控制”的功能;具有 位操作类指令,有较强的布尔变量处理能力。
3、简述80C51指令的分类和格式。
答:80C51单片机的指令系统共有111条指令,按其功能可分为5大类:数据传送类指令(28 条)、算术运算类指令(24条)、逻辑运算类指令(25条)、控制转移类指令(17条)和布尔 操作(位)类指令(17条)。
BCD码采用4位二进制数编码,并且只采用了其中10个编码,即 0000~1001,分别代表BCD码0~9,而1010~1111为无效码。当两个BCD码 相加结果大于9时,说明已进入无效编码区;当两个BCD码相加结果有进 位时,说明已跳过无效编码区。若结果进入或跳过无效编码区,则结果 是错误的,相加结果均比正确结果小6(差6个无效编码)。
指令的表示方法称之为“指令格式”,其内容包括指令的长度和指令内部信息的安排等。 在80C51系列的指令系统中,有单字节、双字节和三字节等不同长度的指令。
单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。 双字节指令:包括两个字节,其中一个字节为操作码,另一个字节是操作数。 三字节指令:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能 是地址。
例如:
INC R7
;R7的内容为操作数,加1后再送回R7
(4)寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才
是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址
方式中,寄存器中存放的则是操作数的地址。
寄存器间接寻址须以寄存器符号名称的形式表示,为了区别寄存器寻址和寄存器间接寻
寄存器间接寻址须以寄存器符号名称的形式表示为了区别寄存器寻址和寄存器间接寻址在寄存器间接寻址中应在寄存器的名称前面加前缀

03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)

03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)

;A = 59H = 0101 1001B ;P1 = A = 0101 1001B ;C = 1 ;ACC.1 = 1 ;P1.3 = 0 ;P1.6 = 0 ;P1.2 = 1 ;(20H)= P1 = 0001 0101B ;(30H)= A = 0101 1011B
09:43
单片机技术
8
3.9.2 位控制指令(SETB、CLR、CPL)
;P1.0 = 1 ;ACC.3 = 0 ;C = 1 ;C = 1 ;C = 1 ;P3.4 = 1
09:43
单片机技术
14
3.9.3 位条件转移指令(JC、JB、JBC)
❖ 1.判C转移指令ຫໍສະໝຸດ JC、JNC)JC rel
;先PC←PC+2;若(Cy)= 1时转移,且PC'
=PC+rel,否则顺序执行
CPL bit ;(bit)= (/bit)
▪ 功能:将Cy或bit取反。
09:43
单片机技术
9
3.9.2 位控制指令(SETB、CLR、CPL)
❖ 课堂练习
▪ 执行以下指令?
SETB P1.0 CLR 20H CLR PSW.2 CPL PSW.2 CLR RS0 SETB RS1
;P1.0 = 1 ;20H = 0 ;PSW.2 = 0 ;PSW.2 = 1 ;RS0 = 0 ;RS1 = 1
❖ 1.位置1指令(SETB)
▪ 格式:SETB C ;(Cy) = 1
SETB bit ;(bit)= 1
▪ 功能:将Cy或bit置1。
❖ 2.位置0指令(CLR)
▪ 格式:CLR C ;(Cy) = 0
CLR bit ;(bit)= 0
▪ 功能:将Cy或bit置0。

AVR第三章(AVR指令系统)11年上

AVR第三章(AVR指令系统)11年上

机器码:10q0 qq0d dddd 1qqq。
13
九、从程序存储器取常数寻址
只有一条指令LPM,也称查表指令。
程序存储器中存放常数字节的地址由寄存器Z的内容确定。 Z寄存器的高15位用于选择字地址,而Z寄存器的最低位D0用 于存放字地址的高低字节。若最低位为0,则选择低字节;若 最低位为1,则选择高字节。
说明:
一个汇编文件包含若干个代码段,若干个数据段 ,若 干个E2PROM 段 ,在汇编时,它们按类型的不同被分别连接 成一个代码段,一个数据段,一个E2PROM段。
18
二、ORG——设置程序、数据在段中的起始位置
语法: .ORG 表达式 ; 表达式的值为定位计数器的值---绝对值(无符号数)。 如果ORG伪指令放在数据段,则设置SRAM定位计数器。 如果该伪指令放在代码段,则设置程序存储器计数器。 如果该伪指令放在E2PROM段,则设置E2PROM定位计数器。 缺省值:代码段:0;数据段:32; E2PROM 段 :0。 注意:程序存储器定位计数器--按字计数; 而E2PROM和SRAM 定位计数器--按字节计数。
19
三、数据定义伪指令
1.BYTE——在SRAM数据区定义字节 语法:LABEL:.BYTE 表达式(表)
2. DB——在程序存储器或E2区中定义字节常数 语法:LABEL: .DB 表达式(表)
tab:.db $3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f ;七段码表
例:LPM ; 操作: R0←(Z),既把以Z为指针的程序存储 器的内容送R0。若Z=$0100,即把地址为$0080的程序存储器 的低字节内容送R0,若Z=$0101,即把地址为$0080的程序存 储器的高字节内容送R0。 先了解一下,指令部分详细讲解。

单片机-第三章

单片机-第三章

间接寻址寄存器前缀, @Ri, @ 间接寻址寄存器前缀,如@Ri,@A+DPTR (X) X中的内容。 中的内容。 寻址的单元中的内容。 ((X)) 由X寻址的单元中的内容。 箭头右边的内容被箭头左边的内容所取代。 → 箭头右边的内容被箭头左边的内容所取代。
单片机原理及接口技术——自动化系 单片机原理及接口技术——自动化系
单片机原理及接口技术——自动化系 单片机原理及接口技术——自动化系
MCS-51单片机指令系统 第3章 MCS-51单片机指令系统
本章主要介绍MCS-51汇编语言的指令系统。 本章主要介绍MCS-51汇编语言的指令系统。 MCS 汇编语言的指令系统 MCS-51的基本指令共111条 的基本指令共111 MCS-51的基本指令共111条 单字节指令; (1) 单字节指令; 按指令所占的字节来分: 双字节指令; 按指令所占的字节来分: (2) 双字节指令; 三字节指令。 (3) 三字节指令。 按指令的执行时间来分: 按指令的执行时间来分: 1个机器周期 12个时钟振荡周期 指令64 个机器周期( 个时钟振荡周期) 64条 (1) 1个机器周期(12个时钟振荡周期)指令64条 2个机器周期 24个时钟振荡周期 指令45 个机器周期( 个时钟振荡周期) 45条 (2) 2个机器周期(24个时钟振荡周期)指令45条 4个机器周期只有乘 除两条指令的执行时间为(48个时 个机器周期只有乘、 (3) 4个机器周期只有乘、除两条指令的执行时间为(48个时 钟振荡周期)。 钟振荡周期)。 12MHz晶振 机器周期为1 晶振: 12MHz晶振:机器周期为1µs。
单片机原理及接口技术——自动化系 单片机原理及接口技术——自动化系
;A←(Rn) ;A←(direct) ;A←((Ri)) ;A←#data

第3章MCS-51单片机指令系统

第3章MCS-51单片机指令系统

第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。

03.8 第三章 - 单片机指令系统(逻辑运算指令ANL、ORL、XRL、CPL、RL、RR、RRC、RLC)

03.8 第三章 - 单片机指令系统(逻辑运算指令ANL、ORL、XRL、CPL、RL、RR、RRC、RLC)
∩ 1000 1001
0000 1001
0
9
09:42
单片机技术
6
3.8.1 逻辑“与”运算指令(ANL)
❖ 练习 ▪ 已知(A)=6EH,(R0)=9BH,执行ANL A,R0后 ?
0110 1110
∩ 1001 1010
0000 1010

0
A
09:42
单片机技术
7
3.8.1 逻辑“与”运算指令(ANL)
第三章:单片机指令系统
3.8 逻辑运算类指令
09:42
单片机技术
1
第三章:MSC-51 单片机指令系统
3.8 - 逻辑运算类指令
☺ 3.8.1 逻辑“与”运算指令 ☺ 3.8.2 逻辑“或”运算指令 ☺ 3.8.3 逻辑“异或”运算指令 ☺ 3.8.4 累加器A清0和取反 ☺ 3.8.5 “左移”循环指令(RL RLC) ☺ 3.8.6 “右移”循环指令(RR RRC)
∪ 1000 1001
1101 1111
D
F
09:42
单片机技术
12
3.8.2 逻辑“或”运算指令(ORL)
❖ 2.高考考点(ORL)
▪ 规则:有1出1,全0出0(按位) ▪ 功能:置1操作 ▪ 方法:某一位要置1则该位写1,其余不变位写0
09:42
单片机技术
13
3.8.2 逻辑“或”运算指令(ORL)
09:42
单片机技术
10
3.8.2 逻辑“或”运算指令(ORL)
❖ 1.“或” 逻辑指令(ORL)
▪ 指令格式:
ORL A ,
#data ;A ←(A)∪ data ,立即寻址 direct ;A ←(A)∪ direct ,直接寻址 Rn ;A ←(A)∪ (Rn) ,寄存器寻址 @Ri ;A ←(A)∪ (@Ri),寄间寻址

第3章 MCS-51 单片机的指令系统

第3章 MCS-51 单片机的指令系统

2.2 用@Ri进行间接寻址的指令 MOVX A, @Ri; ((Ri)) MOVX @Ri,A; (A) (A) ((DPTR))
说明:若外部扩展RAM小于等于256单元,用@Ri间接 寻址进行数据传送,8位地址线足够使用。
若外部扩展较大的RAM区域,须用P2口输出高8位地址, 用@Ri表示低八位地址,P0口分时作低8位地址线和数 据线,P2口应事先预置。
累加器
Rn #data 立即数
寄存器
2 外部数据存储器(或I/O)的读写指令 2.1 用@DPTR进行间接寻址的指令
MOVX A, @DPTR; ((DPTR)) (A)
MOVX @DPTR,A; (A)
((DPTR))
DPTR为16位数据指针,该指令可寻址外部RAM64K范围 (0000H-0FFFFH),地址低8位由P0口输出,地址高8 位由P2口输出,数据通过P0口读入或写出。
一 数据传送指令 1 内部数据传送指令(MOV) 指令格式:MOV <目的操作数〉,<源操作数> 指令的源操作数和目的操作数都在单片机内部。可以 是片内RAM地址,也可以是特殊功能寄存器SFR的地址 指令的功能是把源操作数指定的字节变量复制到目的 操作数所规定的单元或寄存器中,源字节不变。
1.1 立即数传送指令 源操作数为立即数 八位立即数传送指令: MOV A,#DATA; DATA (A) 例:MOV A,#02H; MOV Rn,#DATA; DATA (Rn) n=0-7 例:MOV R3,#02H; MOV @Ri,#DATA; DATA ((Ri)) i=0,1 例:MOV @R1,#02H; MOV direct,#DATA; DATA (direct) 例:MOV 30H,#02H;

微机原理_单片机的指令系统(2001)(1)

微机原理_单片机的指令系统(2001)(1)

(Rn) #data
数据传送类指令(2)

mov direct,A ;
(direct) (A)


mov direct,Rn ;
mov direct,direct ;
(direct) (Rn) n=0~7
(direct) (direct)


mov direct, @Ri ;
数据传送类指令(5)
direct 直接寻址 A @Ri 间接寻址
累加器 Rn 寄存器 data 立即数
算术运算类指令
程序状态字 PSW 加法指令 减法指令 乘/除指令
减法指令
subb subb subb subb A,Rn ;(A)<--(A)-(Rn)-(C) A,direct ;(A)<--(A)-(direct) -(C) A,@Ri ;(A)<--(A)-((Ri)) -(C) A,#data ;(A)<--(A)-#data -(C)
movx @Ri,A;


movx @DPTR,A ; ((DPTR)) (A)
movc A,@A+DPTR ; (A) ((A)+(DPTR))
movc A,@A+PC;
(PC) (PC)+1 ,
(A) ((A)+(PC))

mov DPTR,#data16; (DPTR) #data16
减 1 指令
减 1 指令
dec A dec Rn dec direct dec @Ri ;(A)(A)-1 ;(Rn)(Rn)-1 ;(direct)(direct)-1 ;((Ri) )((Ri) )-1

单片机指令的位操作和逻辑运算

单片机指令的位操作和逻辑运算

单片机指令的位操作和逻辑运算单片机是在嵌入式系统中广泛应用的一种微处理器,它具有尺寸小、功耗低、集成度高等特点,常用于控制和管理各种电子设备。

在单片机的编程中,位操作和逻辑运算是非常重要的概念和技巧。

一、位操作位操作是指对单片机中的位进行操作,包括位的读取、置位、清零、取反等操作。

单片机中的数据通常以位的形式存储,对位的操作可以很方便地实现对数据的控制和处理。

1. 位的读取在单片机中,可以通过使用逻辑与运算符来读取某一位的值。

逻辑与运算符可以用来判断某一位是否为1或者0,从而进行相应的逻辑处理。

例如,在使用单片机控制LED灯时,可以通过读取一个特定位的值来确定LED灯的状态,进而进行灯的亮灭的控制。

2. 位的置位位的置位意味着将某一位设置为1。

在单片机编程中,可以使用逻辑或运算符和位运算符来实现位的置位操作。

通过位的置位操作,可以实现对某一位的控制。

例如,在使用单片机控制电机时,可以通过位置位操作来控制电机的启动。

3. 位的清零位的清零意味着将某一位设置为0。

与位的置位类似,位的清零操作同样可以使用逻辑与运算符和位运算符来实现。

通过位的清零操作,可以实现对某一位的复位。

例如,在单片机控制温度传感器时,可以通过清零操作来复位传感器的状态。

4. 位的取反位的取反意味着将某一位的值从1变为0,或者从0变为1。

在单片机中,可以使用位运算符来实现位的取反操作。

通过位的取反操作,可以实现对某一位状态的改变。

例如,在单片机输入输出控制中,可以通过取反操作来改变IO口的输出状态。

二、逻辑运算逻辑运算是指对单片机中的位进行逻辑判断和运算,包括逻辑与、逻辑或、逻辑非等操作。

逻辑运算可以对多位数据进行综合处理,从而实现各种逻辑功能。

1. 逻辑与运算逻辑与运算是指对两个数据进行逻辑与操作,结果为1的条件是两个数据都为1,否则结果为0。

在单片机编程中,可以使用逻辑与运算符来实现逻辑与运算。

逻辑与运算在逻辑判断和逻辑运算中广泛应用,常用于状态判断和位操作等方面。

第03章 MCS - 51单片机指令系统

第03章 MCS - 51单片机指令系统
这里源操作数不能进行寄存器间接寻址, 也就是MOV Rn , @Rn 这个指令是不能用 的。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
(2)将数据传送到工作寄存器Rn的指令(3条) 例:已知累加器A的内容为30H,寄存器R7的内容 为50H,内部RAM30H单元的内容为40H,内部 RAM50H单元的内容为10H,请指出下列每条指令 执行以后相应单元内容的变化.
第 一 节 指 令 格 式 与 寻 址 方 式
第3章 MCS-51单片机指令系统
(6) 相对寻址:
在MCS -51 指令系统中设有转移指令, 分 为直接转移和相对转移指令, 在相对转移 指令中采用相对寻址方式。这种寻址方式 是以PC的内容为基本地址, 加上指令中给 定的偏移量作为转移地址,也就是目的地 址(用来修改PC的值)。指令中给出的偏 移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。
第3章 MCS-51单片机指令系统
(1) 立即寻址:
立即寻址方式是将操作数直接存放在指令字 节中,作为指令的一部分存放在代码段里。 比如:MOV A, #3AH 跟在指令操作码后面的数就是参加运 算的数, 该操作数称为立即数。立即数有一字 节和二字节两种可能, 如指令: MOV DPTR, #0DFFFH 上述两条指令均为立即寻址方式, 第 一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据 指针DPTR中(DPH, 0FFH→DPL)。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
3.2数据传送指令
程序中使用最多的指令,主要用于内部RAM、 寄存器、外部RAM以及程序存储器之间的数据 传送、保存以及交换。 工作原理:将源操作数简单地传给目的 操作数,而源操作数的内容不变,PSW的内容 不改变。 分类:内部数据传送指令、外部传送指 令、查表指令、交换指令和堆栈指令。

(完整版)单片机指令大全

(完整版)单片机指令大全

一个单片机所需执行指令的集合即为单片机的指令系统。

单片机使用的机器语言、汇编语言及高级语言,但不管使用是何种语言,最终还是要“翻译”成为机器码,单片机才能执行之。

现在有很多半导体厂商都推出了自己的单片机,单片机种类繁多,品种数不胜数,值得注意的是不同的单片机它们的指令系统不一定相同,或不完全相同。

但不管是使用机器语言、汇编语言还是高级语言都是使用指令编写程序的。

所谓机器语言即指令的二进制编码,而汇编语言则是指令的表示符号。

在指令的表达式上也不会直接使用二进制机器码,最常用的是十六进制的形式。

但单片机并不能直接执行汇编语言和高级语言,都必须通过汇编器“翻译”成为二进制机器码方能执行,但如果直接使用二进制来编写程序,那将十分不便,也很难记忆和识别,不易编写、难于辨读,极易出错,同时出错了也相当难查找。

所以现在基本上都不会直接使用机器语言来编写单片机的程序。

最好的办法就是使用易于阅读和辨认的指令符号来代替机器码,我们常称这些符号为助记符,用助记符的形式表示的单片机指令就是汇编语言,为便于记忆和阅读,助记符号通常都使用易于理解的英文单词和拼音字母来表示。

每种单片机都有自己独特的指令系统,那么指令系统是开发和生产厂商定义的,如要使用其单片机,用户就必须理解和遵循这些指令标准,要掌握某种(类)单片机,指令系统的学习是必须的。

MCS-51共有111条指令,可分为5类:[1].数据传送类指令(共29条)[2].算数运算类指令(共24条)[3].逻辑运算及移位类指令(共24条)[4].控制转移类指令(共17条)[5].布尔变量操作类指令(共17条)一些特殊符号的意义在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。

Rn——当前选中的寄存器区的8个工作寄存器R0—R7(n=0-7)。

Ri——当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1)direct—内部数据存储单元的8位地址。

arm系列contex的a,r,m的区别

arm系列contex的a,r,m的区别

arm系列contex的a,r,m的区别
从cortex开始,分为三个系列,a系列,r系列,m系列。

m系列与arm7相似,不能跑操作系统(只能跑ucos2),偏向于控制⽅⾯,说⽩了就是⼀个⾼级的单⽚机。

a系列主要应⽤在⼈机互动要求较⾼的场合,⽐如pda,⼿机,平板电脑等。

a系列类似于cpu,与arm9和arm11相对应,都是可以跑草错系统的。

linux等。

r系列,是实时控制。

主要应⽤在对实时性要求⾼的场合。

arm7和m3,m4是同⼀类型。

这三个⾥⾯,arm7是最早的arm产品。

m3是cortex m系列的过渡品,其低端市场被cortex m0的⾼端替代,其⾼端市场⼜被cortex m4的低端取代。

现在m系列,是m4内核的。

典型的芯⽚是st公司和飞思卡尔公司的。

arm9 和cortex a8 是⼀个类型的,都是跑操作系统的,现在的⾼端⼿机,三星,htc等智能⼿机,就是⽤的cortex a8,cortex a9 内核的芯⽚作为cpu。

(1)ARM7,ARM9属于v4T或v5E架构
(2)ARM11属于v6架构
(3)Contex属于v7架构
ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)
架构上v5E相⽐v4T则是在于v5E新加⼊的增强型DSP(数字信号处理)指令,v4T则是Thumb指令集的加⼊,v6架构则是开始⽀持SIMD以及Thumb2的问世.。

单片机指令集和操作系统的关系

单片机指令集和操作系统的关系

单片机指令集和操作系统的关系
1> 首先讨论各种单片机与操作系统的关系
 说到单片机,大家第一时间想到的应该是51单片机,对吧。

不错,更高级一点的AVR,把他称为单片机,我们也还觉得可以接受。

那幺再高级一点的ARM7,8086,80386,Core i3,Athlon 等等我们更习惯称他们为CPU,因为学习计算机原理的时候都是这幺叫的,但按照单片机的定义,他们也是归属于单片机。

这也不怪大家,中国的教育都是这样,只注重告诉你是什幺,而不告诉你他们之间的联系。

上述几种单片机或者芯片(如果你还是觉得把core i3叫做单片机你不习惯的话)在原理上都是一样,即都是有运算器控制器寄存器构成的,不同之处在于它们的硬件电路实现不同,个数不同,功耗不同,计算能力不同,但都提供相同的基本功。

OK,终于让cpu找到了组织,那幺就介绍为什幺有的单片机要操作系统,有的在我们学习的过程中压根就跟操作系统不挨边。

 51/AVR单片机在学习他们的时候,都是先介绍它们有哪些资源有几个寄存器,有几个时钟等,然后就是怎幺用汇编,用C或者是C与汇编混合编程。

这里我们用的语言都是可以直接操作硬件资源的,因此我们可以自己决定什幺时候使用哪个寄存器,什幺时候将寄存器内容写到辅存储器中。

 ARM单片机在学习它的时候,我们可以给他搭载操作系统,如MicroC/OS,iOS X, Android或者其他定制的Linux操作系统,但有时我们也经常不让它搭载操作系统,而是直接像使用51单片机那样来操作它。

单片机指令系统及其执行过程的详解

单片机指令系统及其执行过程的详解

单片机指令系统及其执行过程的详解单片机是现代电子设备中不可或缺的组成部分,其指令系统和执行过程对于单片机的工作和性能起着至关重要的作用。

本文将详细介绍单片机指令系统的组成和执行过程,并探讨其在实际应用中的意义。

一、单片机指令系统的组成单片机的指令系统由指令集、寄存器和地址计算单元组成。

1. 指令集指令集是单片机能够执行的所有指令的集合。

它包含了各种不同类型的指令,如算术指令、逻辑指令、数据传输指令等。

不同的单片机具有不同的指令集,但通常都包括基本的算术和逻辑运算指令,以及控制流指令(如条件分支和循环)。

2. 寄存器寄存器是单片机内部用于存储数据和执行运算的存储器组件。

常见的寄存器包括通用寄存器、标志寄存器、程序计数器等。

通用寄存器用于存储临时数据,标志寄存器用于存储运算结果的状态信息,程序计数器用于存储当前正在执行的指令地址。

3. 地址计算单元地址计算单元用于计算指令中的操作数的地址。

它根据指令中的寻址方式和地址模式,将指令中的操作数地址计算出来,并将其传递给存储器或寄存器。

二、单片机指令执行过程单片机的指令执行过程包括指令取指、指令译码和指令执行三个阶段。

1. 指令取指在指令取指阶段,程序计数器(PC)从存储器中读取下一条指令的地址,并将其存储在指令寄存器(IR)中。

同时,PC的值自动递增,准备读取下一条指令。

2. 指令译码在指令译码阶段,单片机将指令寄存器中的指令译码为对应的操作。

根据指令的类型和操作码,单片机确定需要执行的具体操作,如运算、数据传输或控制流操作。

3. 指令执行在指令执行阶段,单片机根据译码结果执行具体的操作。

这包括算术和逻辑运算、数据传输等。

执行结果可以存储在寄存器中,也可以写入存储器。

同时,单片机还会根据程序的控制流进行条件分支或循环。

三、单片机指令系统的应用意义单片机指令系统的优化对于提高单片机的执行效率和性能至关重要。

通过合理设计指令集,可以充分发挥单片机的计算和控制能力,提高其运算速度和响应能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章AVR单片机指令系统计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。

计算机只能识别和执行机器语言的指令。

为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。

汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。

AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。

SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令, 而我们所做的11个实验程序仅用了34条指令, 我们重点讲这34条指令, 其余指令就可自学了。

AVR器件(指令速查表) 118条指令器件1.不带进位加法ADD一不带进位加说明:两个寄存器不带进位C标志加,结果送目的寄存器Rd。

操作: RdRd+ Rr语法:操作码:程序计数器:ADD Rd,Rr O≤d≤31,0≤r≤31 PCPC+1 例子:。

(实践操作程序实践操作例子*.ASM,必须编译生成*.OBJ文件才可调试,如要修改*.ASM,必须修改文件属性,去掉*.ASM只读文件属性2.带进位加法ADC-一带进位加说明:两个寄存器和C标志的内容相加,结果送目的寄存器Rd。

操作: Rd←Rd+Rr+C语法:操作码:程序计数器:ADC Rd,Rr 0≤d≤31,0≤r≤31 PC←PC+1例子:(实践操作程序3.减1指令DEC一减1说明:寄存器Rd的内容减1,结果送目的寄存器Rd中。

操作:RdRd-l语法:操作码:程序计数器:DEC Rd 0≤d≤31 PCPC十1 例子:(实践操作程序4.立即数比较CPI——带立即数比较说明:该指令完成寄存器Rd和常数的比较操作。

寄存器的内容不改变。

该指令后能使用所有条件转移指令。

操作:Rd-K语法:操作码:程序计数器:CPI Rd, K 16≤d≤31, 0≤ K≤255 PCPC + 1例子:(实践操作程序5.带立即数与ANDI——立即数逻辑与 ;全1为1,有0即0说明:寄存器Rd的内容与常数逻辑与,结果送目的寄存器Rd。

应用: 清0,使某位为0,用0去与;保留,用1去逻辑与;代硬件与门操作:RdRd·K;语法:操作码:程序计数器:ANDI Rd K 16≤d≤31, 0≤K≤255 PCPC+ 1 例子:(实践操作程序6.寄存器逻辑或OR一逻辑或;有1即1,全0为0,应用: 置数,使某位为1,用1去或;保留,用0去逻辑或;代硬件或门说明:完成寄存器Rd与寄存器Rr的内容逻辑或操作,结果进目的寄存器Rd中。

操作: RdRd ∨ Rr语法:操作码:程序计数器: OR Rd Rr 0≤d≤31, 0≤r≤31 PCPC+ 1 例子:(实践操作程序7.清除寄存器CLR-一寄存器清零说明:寄存器清零。

该指令采用寄存器Rd与自己的内容相异或实现的。

寄存器的所有位都被清零。

操作: RdRd ⊕Rd语法:操作码:程序计数器:CLR Rd 0≤d≤31 PCPC+ 1 例子:(实践操作程序8.相对跳转RJMP一相对跳转说明:相对跳转到 PC -2K和 PC+2K(字)范围内的地址。

在汇编程序中,标号用于替代相对操作。

AVR微控制器的程序存储器空间不超过4K字(8K字节),该指令能寻址整个存储器空间的每个地址位置。

操作: PC(PC+1)+ k语法:操作码:程序计数器:RJMP k — 2K≤k≤2K PC(PC+1)+k 例子:(实践操作程序9.相等转移BREQ相等转移说明:条件相对转移,测试零标志(Z),如果 Z位被置位,则相对PC 值转移。

如果在执行CP、CPI、SUB或SUBI指令后立即执行该指令,且当寄存器Rd中无符号或有符号二进制数与寄存器 Rr中无符号或有符号H进制数相等时,转移将发生。

操作:If Rd=Rr(z=1)then PC(PC十1)+k,PCPC十1语法:操作码:程序计数器:BREQ k -64≤k≤+63 PC(PC+ 1)+ kPCPC+ l例子:(实践操作程序10.不相等转移BRNE——不相等转移说明:条件相对转移,测试零标志(Z),如果Z位被清零,则相对PC 值转移。

如果在执行CP。

CPI、SUB或SUBI指令后立即执行该指令,且当在寄存器Rd中的无符号或带符号二进制数不等于寄存器Rr中的无符号或带符号二进制数时,转移将发生。

该指令相对PC转移的方向为:PC- 64≤目的≤PC+ 63。

参数K为PC的偏移,用2的补码表示(相当于指令BRBCIK)。

操作, If Rd≠Rr(Z=0) then PC(PC+1)+k,elesPCPC+1语法:操作码:程序计数器:BRNE k -64≤ k ≤+63 PC(PC+1)+ kPCPC+l 例子:(实践操作程序11.寄存器位清零跳行SBRC一寄存器位被清零跳行说明:该指令测试寄存器某位,如果该位被清零,则跳下一行执行指令。

操作:If Rd(b)= 0 then PCPC+2(or 3)eles PCPC+ 1语法:操作码:程序计数器:SBRC Rr,b 0≤ r≤ 31, 0≤ b≤7 PCPC十1pCpC+ 2PCPC+ 3例子:(实践操作程序12.寄存器位置位跳行SBRS一寄存器位置位跳行说明:该指令测试寄存器某位,如果该位被置位,则跳下一行执行指令。

操作: If Rr(b)=l then PCPC+ 2(or 3)elesPCPC+ l语法:操作码:程序计数器:SBRS Rr,b ≤r≤31,0≤b≤7 PCPC+1PCPC+2PCPC+3例子:(实践操作程序13.I/O寄存器位置位跳行SBIS-I/O寄存器的位置位跳行说明:该指令测试1/O寄存器某位,如果该位被置位,则跳一行执行指令。

该指令在低32个1/O寄存器内操作,地址为0~31。

操作: If I/OP, b=l then PCPC+2(or 3)else PCPC+1语法:操作码:程序计数器:SBIS p ,b 0≤ P≤ 31, 0≤ b≤ 7 PCPC+ 1PCPC+ 2PCPC+ 3例子:(实践操作程序14.相对调用RCALL——相对调用于程序说明:在PC+1后(2K字(4K字节)范围内调用子程序。

返回地址(RCALL 后的指令地址)存储到堆栈(见CALL)。

操作:PC(PC+1)+k语法:操作码:程序计数器:RCALL k -2K≤ k ≤2K PC(PC+1)+ k 例子: (实践操作程序15.从子程序返回RET——子程序返回说明:从子程序返回。

返回地址从堆栈中弹出。

操作: PC(15-0)STACKPC(21-0)STACK语法:操作码:程序计数器:堆栈: RET None See Operation SPSP+ 2 RET None See Operation SPSP+ 3 例子:(实践操作程序见16.从中断程序返回RETI——中断返回说明:从中断程序中返回。

返回地址从堆栈中弹出,且全局中断标志被置位。

注意:1.主程序应跳过中断区,防止修改补充中断程序带来麻烦;2.不用的中断入口地址写上RETI-中断返回,有抗干扰作用;操作: PC(15-0)STACKPC(21-0)STACK语法:操作码:程序计数器:堆栈:RETI None See Operation SPSP十2RETI None See Operation SPSP +3例子:( 程序,摘自”乐曲.ASM”部分程序,仅供参考),能执行程序请阅”乐曲.ASM”程序及AVR单片机在儿童智能玩具中的应用--音乐玩具(电脑放音机)一文17.寄存器拷贝数据MOV寄存器拷贝说明:该指令将一个寄存器拷贝到另一个寄存器。

源寄存器Rr的内容不改变,而目的寄存器Rd拷贝了Rr的内容。

操作:Rd ← Rr语法:操作码:程序计数器:MOV Rd Rr 0≤d≤31,0≤r≤31 PCPC+ 1例子:(实践操作程序18.SRAM数据直接送寄存器LDS直接从SRAM装入说明:把SRAM中1个字节装入到寄存器。

必须提供一个16位地址。

存储器访问被限制在当前64K字节的SRAM页。

超过64K字节,LDS指令使用RAMPZ寄存器访问。

操作:Rd(k)语法:操作码:程序计数器:LDS Rd k 0≤ d≤ 31,0≤ k≤65535 PCPC+2例子:(实践操作程序19.寄存器数据直接送SRAMSTS寄存器数据直接送SRAM说明:将寄存器的内容直接存储到SRAM。

必须提供一个16位的地址。

存储器访问被限制在当前64K字节的SRAM页。

STS指令使用RAMPZ寄存器访问存储器可超过64K字节。

操作:(k)Rr语法:操作码:程序计数器:STS k,Rr 0≤r≤31,0≤k≤65535 PCPC+2例子:(实践操作程序与相同)20.立即数送寄存器LDI——装入立即数说明:装入一个8位立即数到寄存器R16~R31中。

操作:RdK语法:操作码:程序计数器:LDI Rd K 16≤ d≤ 31, 0≤K≤ 255 PCPC+2例子:(实践操作程序21.使用变址Z间接将SRAM中的内容传送到寄存器LD(LDD)——使用变址Z间接将SRAM中的内容传送到寄存器说明:带或不带偏移间接从SRAM中传送一个字节到寄存器,SRAM中的位置由寄存器区中的 Z(16位)指针寄存器指出。

存储器访问被限制在当前64K字节的 SRAM页中。

为访问另外SRAM页,则 I/O范围内的寄存器RAMPZ需改变。

在指令执行后,Z指针寄存器值要么不改变,要么就加1或减1操作。

使用Z指针寄存器的这些特性,特别适合于堆栈指针,因为Z指针寄存器能用于直接子程序调用,直接跳转和查表。

Z指针寄存器用作为专用堆栈指针要比X、Y指针方便。

用Z指针在程序存储器中查表,可参见LPM指令。

操作:Rd(Z)Rd(Z)Z Z-1Rd (Z+q)语法:操作码:操作流程: 程序计数器:LD Rd,Z 0≤ d≤31 送数,Z指针不改变 PCPC+1 LD Rd Z+ 0≤d≤31 先送数,后Z指针加1 PCPC+1LD Rd,-Z 0≤d≤31 先Z指针减1, 后送数 PCPC+lLDD Rd Z+q 0≤ d≤31,先Z指针加q,后送数, PCPC+10≤q≤63 执行后Z指针(Z不含q)不变例子:(实践操作程序22. LPM——装入程序存储器说明:将Z寄存器指向的一个字节传送到寄存器0(RO)。

该指令使100 %空间有效,常量初始化或常数取数特别有用。

程序存储器被编为16位字,Z(16位)指针的最低位(LSB)选择为0是低字节,选择为1是高字节。

该指令能寻址程序存储器第一个64K字节(32字)。

操作:R0(Z)语法:操作码:程序计数器: LPM None PCPC+ 1 例子:(实践操作程序,更详细资料阅”按钮猜数.ASM”)23.I/O口数据传送到寄存器IN——I/O口数据传送到寄存器说明:将I/O空间(口,定时器,配置寄存器等)的数据传送到寄存器区中的寄存器Rd中。

相关文档
最新文档