ANG Ying 王西亮 WANG Xi-liang 诸葛华 ZHUGE Hua
外国作者名,遵从国际惯例。
作者简介(ZJ) Biography Biographies
姓名(出生年-),性别(民族-汉族可省略),籍贯,职务职称,学位,简历及研究方向(任选)。
参考文献类型标识
专著M 论文集C 报纸文章N 期刊文章J 学位论文D 报告R 标准S
专利P 析出文章A 未说明的文献类型Z
电子文献: 数据库DB 计算机程序CP 电子公告EB
电子文献载体: 磁带MT 磁盘DK 光盘CD 联机网络OL
表示: 网上期刊 [J/OL] 联机网上数据库 [DB/OL] 光盘图书 [M/CD]
GB3469-83《文献类型与文献载体代码》:
专著M 报纸N 期刊J 专题文献P 汇编G 古籍O 技术标准S 学位论文D
科技报告R 参考工具K 检索工具W 档案B 录音带A 图表Q 唱片L 产品样本X 录相带V 会议录C 中译文T 乐谱I 电影片Y 手稿H 微缩胶卷U
幻灯片Z 微缩平片F 其他E
期刊基本参数(CS) 11项 目次页下方。
国内统一刊号*创刊年*出版周期代码*开本*本期页码*语种代码*载体类型代码*本期定价*本期印数*本期文章(有文献标码的)总篇数*出版年月
出版周期代码: w周刊 s半月刊 m月刊 b双月刊 q季刊 f半年刊 a年刊
语种: 汉语zh 英文en 维吾尔文ug
载体: 印刷本P 缩微制品M
参考资料:百度
AH&AL=AX(accumulator):累加寄存器
BH&BL=BX(base):基址寄存器
CH&CL=CX(count):计数寄存器
DH&DL=DX(data):数据寄存器
SP(Stack Pointer):堆栈指针寄存器
BP(Base Pointer):基址指针寄存器
SI(Source Index):源变址寄存器
DI(Destination Index):目的变址寄存器
IP(Instruction Pointer):指令指针寄存器
CS(Code Segment)代码段寄存器
DS(Data Segment):数据段寄存器
SS(Stack Segment):堆栈段寄存器
ES(Extra Segment):附加段寄存器
OF overflow flag 溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1.
SF sign Flag 符号标志 记录运算结果的符号,结果负时为1.
ZF zero flag 零标志 运算结果等于0时为1,否则为0.
CF carry flag 进位标志 最高有效位产生进位时为1,否则为0.
AF auxiliary carry flag 辅助进位标志 运算时,第3位向第4位产生进位时为1,否则为0.
PF parity flag 奇偶标志 运算结果操作数位为1的个数为偶数个时为1,否则为0.
DF direcion flag 方向标志 用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大.
IF interrupt flag 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.
TF trap flag 陷阱标志 用于调试单步操作.
8051系列单片机汇编语言指令速查表
编号 指令名称 指令助记符 指令说明
数据传送类指令
1 一般传送 MOV A, #data 将立即数#data送累加器A
2 MOV direct, #data 将立即数#data送片内RAM direct地址单元内
3 Mov Rn, #data 将立即数#data送寄存器Rn
4 Mov @Ri, #data 寄存器Ri内为RAM地址,将立即数#data送该地址单元内
5 Mov direct2, direct1 将direct1地址单元的数据送 direct2地址单元内
6 Mov direct, rn 将Rn的数据送 direct地址单元内
7 Mov Rn, direct 将direct地址单元内的数据送Rn寄存器
8 Mov direct, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送direct地址单元内
9 Mov @Ri, direct 寄存器Ri内为RAM地址,将direct地址单元内的数据送该地址单元内
10 Mov A, Rn 将寄存器Rn内的数据送累加器A
11 Mov Rn, A 将累加器A内的数据送寄存器Rn
12 Mov A, direct 将direct地址单元内的数据送累加器A
13 Mov direct, A 将累加器A内的数据送direct地址单元内
14 Mov A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A
15 Mov @Ri , A 寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内
16 目的地址传送 Mov DPTR, #data16 将16位立即数送数据指针DPTR寄存器
17 字节交换 SWAP A 累加器A高低4位数据交换
18 XCH A, Rn 将累加器A数据和寄存器Rn内的数据交换
19 XCH A, direct 将累加器A数据和direct地址单元内的数据交换
20 XCH A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据交换
21 XCHD A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换
22 与外部RAM传送 MOVX @DPTR, A 将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内
23 MOVX A , @DPTR 将DPTR寄存器所指外部RAM地址单元内的数据送累加器A
24 MOVX A, @Ri 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A
25 MOVX @Ri, A 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A
26 与ROM传送 MOVC A, @A+DPTR A+DPTR构成ROM地址,将该地址内的数据送累加器A内
27 MOVC A, @A+PC A+PC构成ROM地址,将该地址内的数据送累加器A内
28 栈操作 PUSH direct 堆栈指针SP自加1后,将direct地址单元的数据压进堆栈,
29 POP direct 堆栈的数据送direct地址单元中,后堆栈指针减1,
算术运算指令
30 加法指令 ADD A, Rn 将寄存器Rn与累加器A的数据相加后,结果保存到累加器A
31 ADD A, direct 将direct地址单元内的数据与累加器A的数据相加后结果保存到累加器A
32 ADD A, @Ri 寄存器Ri内位地址,将该地址单元内的数据与累加器A的数据相加后结果保存到累加器A
33 ADD A, #data 将立即数与累加器A的数据相加后结果保存到累加器A
34 带进位加法 ADDC A, Rn 将寄存器Rn与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
35 ADDC A, direct 将direct地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
36 ADDC A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
37 ADDC A, #data 将立即数与累加器A的数据相加,再加上进位标志内的值后结果保存到累加器A
38 带借位减法 SUBB A, Rn 将与累加器A的数据减去寄存器Rn的数据,再减去进位标志内的值,结果保存到累加器A
39 SUBB A, direct 将与累加器A的数据减去direct地址单元内的数据,再减去进位标志内的值,结果保存到累加器A
40 SUBB A, @Ri 寄存器Ri内为RAM地址,将累加器A的数据减去该地址单元内的数据,再减去进位标志内的值后,结果保存到累加器A
41 SUBB A, #data 将累加器A的数据减去立即数,再减去进位标志内的值后,结果保存到累加器A
42 加1指令 INC A 累加器A的值自加1
43 INC Rn 寄存器Rn的值自加1
44 INC direct direct地址单元内值自加1
45 INC @Ri 寄存器Ri内为RAM地址,该地址单元内的值自加1
46 INC DPTR 数据指针寄存器DPTR内的值自加1
47 减1指令 DEC A 累加器A的值自减1
48 DEC Rn 寄存器Rn的值自减1
49 DEC direct direct地址单元内的值自减1
50 DEC @Ri 寄存器Ri内为RAM地址,该地址单元内的值自减1
51 乘法 MUL AB 累加器A与寄存器B内的值相乘,乘积的高8位保存在B寄存器,低8位保存在累加器A中
52 除法 DIV AB 累加器A的值除以寄存器B的值,商保存在累加器A中,余数保存在B寄存器
53 二-十进制调整 DA A 对累加器A的结果进行十进制调整
逻辑运算指令
54 逻辑与 ANL A, Rn 将累加器A的值和寄存器Rn的值进行与操作,结果保存到累加器A中
55 ANL A, direct 将累加器A的值和direct地址单元内的值进行与操作,结果保存到累加器A中
56 ANL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中
57 ANL A, #data 将累加器A的值和立即数进行与操作,结果保存到累加器A中
58 ANL direct, A 将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内
59 ANL direct, #data 将立即数和direct地址单元内的值进行与操作,结果保存到direct地址单元内
60 逻辑或 ORL A, Rn 将累加器A的值和寄存器Rn的值进行或操作,结果保存到累加器A中
61 ORL A, direct 将累加器A的值和direct地址单元内的值进行或操作,结果保存到累加器A中
62 ORL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行或操作,结果保存到累加器A中
63 ORL A, #data 将累加器A的值和立即数进行或操作,结果保存到累加器A中
64 ORL direct, A 将累加器A的值和direct地址单元内的值进行或操作,结果保存到direct地址单元内
65 ORL direct, #data 将立即数和direct地址单元内的值进行或操作,结果保存到direct地址单元内
66 逻辑异或 XRL A, Rn 将累加器A的值和寄存器Rn的值进行异或操作,结果保存到累加器A中
67 XRL A, direct 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到累加器A中
68 XRL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行异或操作,结果保存到累加器A中
69 XRL A, #data 将累加器A的值和立即数进行异或操作,结果保存到累加器A中
70 XRL direct, A 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到direct地址单元内
71 XRL direct, #data 将立即数和direct地址单元内的值进行异或操作,结果保存到direct地址单元内
72 按位取反 CPL A 累加器A的值按位取反
73 累加器清零 CLR A 累加器A清0
74 逻辑右移 RR A 累加器A的值循环右移1位
75 逻辑左移 RL A 累加器A的值循环左移1位
76 带进位右移 RRC A 累加器A的值带进位循环右移1位
77 带进位左移 RLC A 累加器A的值带进位循环左移1位
控制转移指令
78 无条件转移 SJMP rel rel为地址偏移量,PC加2后的地址加上rel作为目标地址,程序跳到目标地址继续运行
79 AJMP addr11(a10- a0) addr11为11位地址,PC加2后的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行
80 LJMP addr16 将addr16的16位地址送程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序
81 JMP @A+DPTR 目标地址的基地址放在DPTR中,目标地址对基地址的偏移量放在累加器A中,它们相加构成目标地址
82 条件转移 JZ rel If(累加器A=0)则PC加2再加上rel作为目标地址
83 JNZ rel If(累加器A!=0)则PC加2再加上rel作为目标地址
84 CJNE A, direct, rel If(累加器A!= direct地址单元的值)则PC加2再加上rel作为目标地址
85 CJNE A, #data, rel If(累加器A!= 立即数)则PC加2再加上rel作为目标地址
86 CJNE Rn, #data, rel If(寄存器Rn的值!= 立即数)则PC加2再加上rel作为目标地址
87 CJNE @Ri, #data, rel 寄存器Ri内为RAM地址,If(该地址单元的值!= 立即数)则PC加2再加上rel作为目标地址
88 循环转移 DJNZ Rn, rel 寄存器Rn的值减1后,If(寄存器Rn的值!=0)则PC加2再加上rel作为目标地址
89 DJNZ direct, rel Direct地址单元的值减1后,If(该值!=0)则PC加3再加上rel作为目标地址
90 布尔条件转移 JC rel If(CY=1)则PC加2再加上rel作为目标地址
91 JNC rel If(CY=0)则PC加2再加上rel作为目标地址
92 JB bit, rel If(bit位=1)则PC加3再加上rel作为目标地址
93 JNB bit, rel If(bit位=0)则PC加3再加上rel作为目标地址
94 JBC bit, rel If(bit位=1)则PC加3再加上rel作为目标地址,且bit位清0
95 调用指令 ACALL addr11 addr11为11位地址,PC加2后的地址PUSH进堆栈,再将PC的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行
96 LCALL addr16 PC加3后的地址PUSH进堆栈,再将16位地址送PC作为目标地址,程序跳到目标地址继续运行
97 返回指令 RET 子程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处
98 RETI 中断程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处
99 空操作 NOP 空操作
位操作指令
100 布尔传送 MOV C, bit 将bit位地址中的值送PSW中的进位标志位CY
101 MOV bit, C 将PSW中的进位标志位CY的值送bit位地址中
102 位清0 CLR C 将进位标志位CY清0
103 位清0 CLR bit 将bit位地址内清0
104 位置1 SETB C 将进位标志位CY置1
105 SETB bit 将bit位地址内置1
106 位与 ANL C, bit 将Cy和bit位地址中的值进行与操作后,结果送Cy
107 ANL C, /bit bit位地址中的值取反后再与Cy进行与操作,结构送Cy
108 位或 ORL C, bit 将Cy和bit位地址中的值进行或操作后,结果送Cy
109 ORL C, /bit bit位地址中的值取反后再与Cy进行或操作,结构送Cy
110 位取反 CPL C 将Cy取反
111 CPL bit 将bit位地址的值取反
参考资料:http://wiki.cepark.com/index.php?doc-view-1880