51-汇编学习笔记(一)

来源:互联网 发布:青岛seo外链外包 编辑:程序博客网 时间:2024/06/05 03:57

51-汇编学习笔记(一)

1. 名词解释

CF   进位标志寄存器        无符号操作的溢出,当溢出时被置为1ZF   零标准寄存器     当计算结果为0时会被置为1SF   符号标志寄存器        当计算结果为负数时会被设为1OF   溢出标志寄存器        当计算结果导致了补码溢出时会被置为1DPTR 数据指针

2. 51-汇编常用指令

PUSH data 直接字节进栈,SP加1
POP data 直接字节出栈,SP减1
XCH A,Rn 寄存器与A交换
XCH A,data 直接字节与A交换
SWAP A A半字节交换
MOV 传送
MOVX 传送外部数据
NOP 空操作
DA A A十进制调整
DEC A A减1
DIV AB A被B除

/*逻辑运算*/
ANL 逻辑与 &
ANL C,bit 直接位与上进位位
ANL C,/bit 直接位的反码与上进位位
ORL 或 |
XRL 异或

/*位运算*/
SETB C 进位位置1
SETB bit 直接位置1
CLR 清零
CPL A A取反码
RL A A循环左移1位
RLC A A带进位左移1位
RR A A右移1位
RRC A A带进位右移1位

/*算数运算*/
ADD A,@Ri 间接RAM加到A
ADDC A,@Ri 间接RAM带进位位加到A
SUBB A,data 从A中减去直接字节和进位
INC 自加
INC A A加1
INC data 直接字节加1
INC DPTR 数据指针加1

/*转移指令*/
AJMP addr 11 绝对转移
LJMP addr 16 长转移
SJMP re1 短转移
JMP @A+DPTR 相对于DPTR间接转移
JZ rel 若A=0则转移
JNZ rel 若A≠0则转移
JC rel 若C=1则转移
JNC rel 若C≠1则转移
JB bit,rel 若直接位=1则转移
JNB bit,rel 若直接位≠1则转移
JBC bit,rel 若直接位=1则转移且清除
CJNE A,data,rel 直接数与A比较,不等转移
DJNZ Rn,rel 寄存器减1不为0转移

/*程序调用*/
ACALL addr 11 绝对子程序调用
LCALL addr 16 子程序调用
RET 子程序调用返回
RETI 中断程序调用返回

eg1:A=10H,R0=33HADD  A,R0    把10单元的内容和R0单元的内容相加存在A中(A)=(A)+(R0)   ADD  A,33H   把10单元的内容和33单元的内容相加存在A中(A)=(A)+(33H)   ADD  A,#33H   把10单元的内容和33相加存在A中      (A)=(A)+33执行的结果也是不一样的。