Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1530724
  • 博文数量: 226
  • 博客积分: 3997
  • 博客等级: 少校
  • 技术积分: 2369
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-19 17:26
个人简介

Never save something for a special occasion. Every day in your life is a special occasion.

文章分类

全部博文(226)

文章存档

2018年(5)

2017年(11)

2016年(1)

2015年(17)

2014年(14)

2013年(30)

2012年(5)

2011年(52)

2010年(107)

分类: 嵌入式

2011-01-03 22:42:48

 

MCS-51的7种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址变址寻址、相对寻址、位寻址。


基址变址寻址中 

MOVC A,@A+DPTR/PC 用于查表

JMP @A+DPTR 用于跳转分支


2  指令系统

2.1 MCS-51指令系统可分为下列 5 类:数据传送、算术运算、逻辑运算、位操作、控制转移。


2.2 

数据传送类指令

数据传送到累加器A

MOV A, Rn / @Ri / direct / #data

数据传送到工作寄存器Rn

MOV Rn, A / direct / #data

数据传送到内部RAM单元 或 特殊功能寄存器SFR

MOV direct, A / Rn / direct2 / @Ri / #data 

MOV @Ri, A/direct/#data

MOV DPTR, #data16

累加器A与外部数据存储器之间的传送

MOVX  A, @DPTR/@Ri  

MOVX  @DPTR / @Ri,  A

堆栈操作(堆栈类型FI)

PUSH / POP  direct

程序存储器内部送累加器(查表)

MOVC A, @A+DPTR/PC

字节交换指令

XCH A,Rn / @Ri / direct

XCHD A, @Ri

SWAP A



2.3 
算术运算指令:ADD、ADDC、INC、SUBB、DEC,MUL、DIV,DA

ADD/ADDC/SUBB  A,  Rn / direct / @Ri / #data

INC/DEC  A / Rn / @Ri / direct

INC DPTR

MULL/DIV AB

DA

加法和溢出:对于无符号数, Cy=1;对于有符号数, OV=1.

DA为压缩型BCD码加法调整。

压缩型BCD码加减结果修正:

加法 

先低4位后高4位;

低4位:若小于或等于9(AC=0),低4位不需修正;若大于9(AC=1),该位进行加6修正。

高4位:同低4位。

 

减法

先低4位后高4位;

低4位:若小于或等于9(AC=0),则低4位不需修正;若AC=1,则减6修正。

高4位:同低4位。

 

 


 

2.4 逻辑运算类指令:CLR、CPL;ANL、ORL、XRL;RL、RLC、RR、RRC

 

简单逻辑操作CLR/CPL/RL/RLC/RR/RRC  A

与、或、异或 ANL/ORL/XRL  A, Rn / direct / @Ri / #data

 ANL/ORL/XRL  direct, A / #data


2.5 控制转移类指令:AJMP、LJMP、SJMP、JMP;ACALL、LCALL;JZ、JNZ、CJNE、DJNZ

无条件转移 AJMP addr11、 LJMP add16、SJMP rel、JMP @A+DPTR

条件转移   JZ rel、JNZ rel

比较转移   CJNE A,direct/#data, rel、 CNJE Rn/@Ri, #data, rel

减1非零 DJNZ Rn/direct, rel

调用及返回  ACALL add11、LCALL addr16、 RET, RETI


2.6  位操作类指令

包括布尔变量的传送、逻辑运算、控制转换等指令。

MOV;CLR、SET、CPL;ANL、ORL; JC、JNC、JBC

指令中位地址的表达形式有以下几种:直接地址方式,点操作符方式、位名称方式、用BIT定义的用户定义名方式。


指令系统小结:理解和掌握MCS-51指令系统,是应用MCS-51单片机的一个重要前提。

 


阅读(1267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~