c51指令集

89c51的指令及汉字解释注意不要网址和图片!谢谢另加20分... 89c51的指令及汉字解释注意不要网址和图片!谢谢另加20分 展开
 我来答
百度网友1f4f451fa
2007-12-15 · TA获得超过154个赞
知道答主
回答量:99
采纳率:0%
帮助的人:136万
展开全部
CIP-51指令集:
助记符 字节数 周期数
功能说明

1:算术操作类指令:

ADD A,Rn 1 1
寄存器加到累加器
ADD A,direct 2 2
直接寻址字节加到累加器
ADD A,@Ri 1 2
间址RAM加到累加器
ADD A,#data 2 2
立即数加到累加器
ADDC A,Rn 1 1
寄存器加到累加器(带进位)
ADDC A,direct 2 2
直接寻址字节加到累加器(带进位)
ADDC A,@Ri 1 2
间址RAM加到累加器(带进位)
ADDC A,#data 2 2
立即数加到累加器(带进位)
SUBB A,Rn 1 1
累加器减去寄存器(带借位)
SUBB A,direct 2 2
累加器减去间接寻址RAM(带借位)
SUBB A,@Ri 1 2
累加器减去间址RAM(带借位)
SUBB A,#data 2 2
累加器减去立即数(带借位)
INC A 1 1
累加器加1
INC Rn 1 1
寄存器加1
INC direct 2 2
直接寻址字节加1
INC @Ri 1 2
间址RAM加1
DEC A 1 1
累加器减1
DEC Rn 1 1
寄存器减1
DEC direct 2 2
直接寻址字节减1
DEC @Ri 1 2
间址RAM减1
INC DPTR 1 1
数据地址加1
MUL AB 1 4
累加器和寄存器B加乘
DIV AB 1 8
累加器除以寄存器B
DA A 1 1
累加器十进制调整

2:逻辑操作类指令:

ANL A,Rn 1 1
寄存器“与”到累加器
ANL A,direct 2 2
直接寻址字节“ 与”到累加器
ANL A,@Ri 1 2
间址RAM“与”到累加器
ANL A,#data 2 2
立即数“与”到累加器
ANL direct,A 2 2
累加器“与”到直接寻址字节
ANL direct,#data 3 3
立即数“与”到直接寻址字节
ORL A,Rn 1 1
寄存器“或”到累加器
ORL A,direct 2 2
直接寻址字节“
ORL A,@Ri 1 2
间址RAM“或”到累加器
ORL A,#data 2 2
立即数“或”到累加器
ORL direct,A 2 2
累加器“或”到直接寻址字节
ORL direct,#data 3 3
立即数“或”到直接寻址字节
XRL A,Rn 1 1
寄存器“异或”到累加器
XRL A,direct 2 2
直接寻址数“异或”到累加器
XRL A,@Ri 1 2
间址RAM“异或”到累加器
XRL A,#data 2 2
立即数“异或”到累加器
XRL direct,A 2 2
累加器“异或”到直接寻址字节
XRL direct,#data 3 3
立即数“到直接寻址字节
CLR A 1 1
累加器清零
CPL A 1 1
累加器求反
RL A 1 1
循环循环左移
RLC A 1 1
经过进位位的累加器循环左移
RR A 1 1
累加器循环右移
RRC A 1 1
经过进位位的累加器循环右移
SWAP A 1 1
累加器内高低半字节交换

3:数据传输类指令:

MOV A,Rn 1 1
寄存器传送到累加器A
MOV A,direct 2 2
直接寻址字节传送到累加器
MOV A,@Ri 1 2
间址RAM传送到累加器
MOV A,#data 2 2
立即数传送到累加器
MOV Rn,A 1 1
累加器传送到寄存器
MOV Rn,direct 2 2
直接寻址字节传送到寄存器
MOV Rn,#data 2 2
立即数传送到寄存器
MOV direct,A 2 2
累加器传送到直接寻址字节
MOV direct,Rn 2 2
寄存器传送到直接寻址字节
MOV direct,direct 3 3
直接寻址字节传送到直接寻址字节
MOV direct,@Ri 2 2
间址RAM传送到直接寻址字节
MOV direct,#data 3 3
立即数传送到直接寻址字节
MOV @Ri,A 1 2
累加器传送到间址RAM
MOV @Ri,direct 2 2
直接寻址数传送到间址RAM
MOV @Ri,#data 2 2
立即数传送到间址RAM
MOV DPTR,#data16 3 3
16位常数装入数据指针
MOVC A,@A+DPTR 1 3
相对于DPTR的代码字节传送到累加器
MOVC A,@A+PC 1 3
相对于PC的代码字节传送到累加器
MOVX A,@Ri 1 3
外部RAM(8位地址)数传送到A
MOVX @Ri,A 1 3
累加器传到外部RAM(8位地址)
MOVX A,@DPTR 1 3
外部RAM(16位地址)传送到A
MOVX @DPTR,A 1 3
累加器传到外部RAM(16位地址)
PUSH direct 2 2
直接寻址字节压入栈顶
POP direct 2 2
栈顶数据弹出到直接寻址字节
XCH A,Rn 1 1
寄存器和累加器交换
XCH A,direct 2 2
直接寻址字节与累加器交换
XCH A,@Ri 1 2
间址RAM与累加器交换
XCHD A,@Ri 1 2
间址RAM和累加器交换低半字节

4:位操作类指令

CLR C 1 1
清进位位
CLR bit 2 2
清直接寻址位
SETB C 1 1
进位位置1
SETB bit 2 2
直接寻址位置位
CPL C 1 1
进位位取反
CPL bit 2 2
直接寻址位取反
ANL C,bit 2 2
直接寻址位“与”到进位位
ANL C,/bit 2 2
直接寻址位的反码“与”到进位位
ORL C,bit 2 2
直接寻址位“或”到进位位
ORL C,/bit 2 2
直接寻址位的反码“或”到进位位
MOV C,bit 2 2
直接寻址位传送到进位位
MOV bit,C 2 2
进位位传送到直接寻址位
JC rel 2 2/3
若进位位为1则跳转
JNC rel 2 2/3
若进位位为零则跳转
JB bit,rel 3 3/4
若直接寻址位为1则跳转
JNB bit,rel 3 3/4
若直接寻址位为零则跳转
JBC bit,rel 3 3/4
若直接寻址位为1则跳转,并清除该位

5:控制转移类指令:

ACALL addr11 2 3
绝对调用子程序
LCALL addr16 3 4
长调用子程序
RET 1 5
从子程序返回
RETI 1 5
从中断返回
AJMP addr11 2 3
绝对转移
LJMP addr16 3 4
长转移
SJMP rel 2 3
短转移(相对偏移)
JMP @A+DPTR 1 3
相对DPTR的间接转移
JZ rel 2 2/3
累加器为0则转移
JNZ rel 2 2/3
累加器为非0则转移
CJNE A,direct,rel 3 3/4
比较直接寻址字节与A,不相等则转移
CJNE A,#data,rel 3 3/4
比较立即数与A,不相等则转移
CJNE Rn,#data,rel 3 3/4
比较立即数与寄存器,不相等则转移
CJNE @Ri,#data,rel 3 4/5
比较立即数与间接寻址RAM,不相等则转移
DJNZ Rn,rel 2 2/3
寄存器减1,不为零则转移
DJNZ direct,rel 3 3/4
直接寻址字节减1,不为零则转移
NOP 1 1
空操作

注释:
Rn – 当前选择的寄存器区的寄存器 R0-R7。

@Ri – 通过寄存器 R0-R1 间接寻址的数据 RAM 地址。

rel – 相对于下一条指令第 8 位有符号(2 的补码)偏移量。SJMP和所有条
件转移指令使用。

direct – 8 位内部数据存储器地址。可以是直接访问数据 RAM 地址(0x00-0x7F)或一
个 SFR 地址(0x80-0xFF)。

#data – 8 位立即数

#data16 – 16 位立即数

bit – 数据 RAM 或 SFR 中的直接寻址位

addr11 – ACALL 或 AJMP使用的 11 位目的地址。目的地址必须与下一条指令第
节处于同一个 2K字节的程序存储器页。

addr16 – LCALL或 LJMP使用的 16 位目的地址。目的地址可以是 64K程序存储器空间
内的任何位置。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式