- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
rel
循环转移指令
循环转移指令是相对转移 循环计数器减一,不等于"0"转移 循环计数器可用
工作寄存器 直接地址 DJNZ DJNZ Rn , rel direct , rel
调用返回指令
调用指令
短调用(2K范围内) ACALL 长调用(64K范围内) LCALL 64K addr11 addr16
传送指令由另一操作数判断 专用位操作指令
数据传送类指令
数据传送类指令有29条,分为5类
内部RAM及SFR间传送 MOV 读写外部数据存储器 MOVX 读程序存储器 MOVC 数据交换 XCH XCHD SWAP 栈操作 PUSH POP
传送指令不影响标志位
内部RAM及SFR间传送(MOV)
源操作数 @Ri direct * * X * X * * *
逻辑与,逻辑或运算 置位,清零,求反
位处理单元有256个地址
20H--2FH单元 SFR中地址能被8整除的单元
位地址的表示形式
位地址只有直接寻址方式 直接地址 0D5H 单元地址.位序号 0D0H.5 单元名称.位序号 PSW.5 位寄存器名称 F0
位操作类指令(17条)
位传送指令:
MOV MOV C , bit bit ,C CLR bit SETB bit CPL bit
寄存器寻址方式
寄存器寻址方式指令中给出寄存器编号 寄存器编号为 R0 -- R7 其对应单元位置由 RS1,RS0 决定 例
INC ADD R0 A,R2
寄存器间接寻址方式
寄存器间接寻址在指令中给出存放操作数 地址的寄存器 可用于间接寻址方式的寄存器有
R0,R1 用于寻址内部128字节RAM DPTR 用于寻址外扩数据存储器( R0,R1)
双操作数逻辑运算指令
以累加器A为目的单元
ANL ORL XRL Rn * * * direct * * * @Ri * * * #data * * *
以直接地址direct为目的单元(读-修改-写)
ANL ORL XRL A * * * #data * * *
控制转移类指令
控制转移类指令有17条,分为:
返回指令
子程序返回 中断返回 RET RETI NOP
空操作
判零转移指令
判零是根据累加器A中是否为零的状态进行 转移 判零转移指令有2条,都是相对转移指令
JZ JNZ 累加器为"0"转移 累加器非"0"转移
位寻址与布尔处理器
8051中含有一个一位的布尔处理器 布尔处理器以Cy为位累加器 布尔处理器可以进行
立即寻址方式
立即寻址方式在指令中直接给出操作数 表示立即数时前面加 # 立即数可以用
二进制数 (B) 十六进制数 (H) 十进制数
例:
MOV A,#23H MOV DPTR,#2040H
直接寻址方式
直接寻址方式指令中给出操作数地址 直接寻址方式可寻址
内部128字节RAM 特殊功能寄存器SFR
特殊功能寄存器只能使用直接寻址方式,可 以用其名称表示直接地址 例: MOV 90H,A MOV P1,A
判位转移指令
JC JNC JB JNB JBC 有进位转移 无进位转移 bit="1"转移 bit="0"转移 bit="1"转移且转移后将 bit 清零
指令格式
[标号:] 操作码 [操作数1][,操作数2][,操作数3] [;注释]
标号用来表示转移地址 操作码指明指令操作 操作数指出参加操作的数据或其存放地址 注释对指令功能进行说明 注意格式中各段之间的间隔符
MOVC A,@A+PC
相对寻址方式
相对寻址方式仅用于转移指令 相对转移的基准是PC当前值 相对转移的范围为 -128 ~ +127 所有的条件转移都采用相对寻址方式 例:
JNZ rel rel 可为一指令标号,其位置应在相对转移的范围内
位寻址方式
对片内RAM中20H-2FH单元的各位和SFR中 单元地址能被8整除的各位进行位操作. 位地址空间为:00H-0FFH 位地址采用直接地址形式 与字节直接寻址的区别:
数据交换
字节交换指令 Rn XCH A, direct @Ri 半字节交换指令
XCHD A,@Ri 累加器A中低四位与Ri所指单元低四位交换 SWAP A 累加器A中高四位与低四位交换
栈操作指令
栈操作只能用直接寻址方式 压栈指令 PUSH direct 出栈指令 POP direct算术ຫໍສະໝຸດ 算指令51系列单片机指令系统
51系列单片机指令系统有111条指令
其中有49条单字节,45条双字节,17条三字 节 有64条单周期,45条双周期,2条四周期
按功能可分为
数据传送类指令 算术运算类指令 逻辑运算类指令 位操作类指令 控制转移类指令
指令寻址方式
51系列单片机指令系统有七种寻址方式 立即寻址方式 直接寻址方式 寄存器寻址方式 寄存器间接寻址方式 基址加变址寻址方式 相对寻址方式 位寻址方式
其他算术运算指令
16位寄存器加一指令 INC 十进制调整指令 DA 乘法指令 MUL AB DPTR A
(A) X (B) = BA Cy = 0 若乘积>0FFH 则 OV=1
除法指令
DIV
AB
(A) / (B) = A ……B Cy = 0 若(B)=0 则 OV=1
逻辑运算类指令
逻辑运算类指令有24条 单操作数指令
MOVX A ,@DPTR MOVX A ,@Ri MOVX @DPTR,A MOVX @Ri ,A
读程序存储器
读程序存储器指令助记符为 MOVC 读程序存储器必须通过累加器A 读程序存储器指令只能用变址寻址方式 变址单元为 DPTR 或PC
MOVC A ,@A+DPTR MOVC A ,@A+PC
累加器操作指令 移位指令
双操作数指令
逻辑与 逻辑或 逻辑异或
累加器操作指令
累加器清零 CLR A 只影响P标志 累加器求反 CPL A 不影响标志
移位指令
移位指令必须经累加器A 所有移位都是循环移位,分左移,右移 可带进位移或不带进位移
RL RR A A RLC RRC A A
除带进位移位外,不影响标志
寻址外扩数据存储器,只能用寄存器间接寻 址方式 例: MOV A,@R0 MOVX @DPTR,A
基址加变址寻址方式
基址加变址寻址方式是以累加器A中内容加 上基址寄存器的值形成操作数地址 可用做基址寄存器的是
DPTR 或 PC
基址加变址寻址方式只用于读取程序存储 器中数据 例:MOVC A,@A+DPTR
�
位变量修改指令:
清"0" CLR C 置"1" SETB C 求反 CPL C
位变量逻辑操作指令
指定位变量与位累加器Cy进行逻辑操作,结 果在Cy中 逻辑与 ANL C,bit ANL C,/bit 逻辑或 ORL C,bit ORL C,/bit 注意区分位操作指令与字节操作指令 ANL C,20H ANL A,20H
目 A 的 Rn 操 作 @Ri 数 direct
A X * * *
Rn * X X *
#data * * * *
另有一条16位传送指令 MOV DPTR,#16
读写外部数据存储器
读写外部数据存储器指令助记符为MOVX 读写外部数据存储器必须通过累加器A 读写外部数据存储器指令只能用间接寻址 方式 间址单元为 DPTR 或 R0,R1
无条件转移指令 判零转移指令 比较转移指令 循环转移指令 调用返回指令
无条件转移指令
短转移指令 AJMP addr11
PC高5位与指令中给出的11位地址相加,可在2K 范围内转移
长转移指令
LJMP
addr16 rel @A+DPTR
转移范围为整个64K存储空间
相对转移指令 SJMP
转移范围为-128~+127
散转指令
JMP
散转指令
累加器A中内容与DPTR内容相加形成转移地址
A=?
A=0 AJMP
A=2 AJMP
A=4 AJMP
A=6 AJMP
A=8 AJMP
比较转移指令
比较转移指令
CJNE 操作数1,操作数2,操作数3 A , direct , rel A , #data , Rn rel @Ri , #data , rel 操作数1与操作数2比较,不等于零转移 A=B 操作数1<操作数2 则 Cy="1" Y A<B A>B , #data , CJNE Y N JC N
算术运算指令共有24条 算术运算指令将影响标志位 算术运算包括
加 ADD,带进位加 ADDC 带借位减 SUBB 增量 INC ,减量 DEC 乘 MUL,除 DIV 十进制调整 DA A
加减指令
操作 Rn ADD ADDC SUBB INC DEC * * * * * @Ri * * * * * 操作数 direct * * * * * #data * * * X X A X X X * *