51彙編語言指令集
符号定義表
符号
含義
Rn
R0~R7寄存器n=0~7
Direct
直接位址,内部資料區的位址RAM(00H~7FH)
SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0
@Ri
間接位址Ri=R0或R1 8051/31RAM位址(00H~7FH) 8052/32RAM位址(00H~FFH)
#data
8位常數
#data16
16位常數
Addr16
16位的目标位址
Addr11
11位的目标位址
Rel
相關位址
bit
内部資料RAM(20H~2FH),特殊功能寄存器的直接位址的位
指令介紹
指令
位元組
周期
動作說明
算數運算指令
1.ADD A,Rn
1
1
将累加器與寄存器的内容相加,結果存回累加器
2.ADD A,direct
2
1
将累加器與直接位址的内容相加,結果存回累加器
3.ADD A,@Ri
1
1
将累加器與間接位址的内容相加,結果存回累加器
4.ADD A,#data
2
1
将累加器與常數相加,結果存回累加器
5.ADDC A,Rn
1
1
将累加器與寄存器的内容及進位C相加,結果存回累加器
6.ADDC A,direct
2
1
将累加器與直接位址的内容及進位C相加,結果存回累加器
7.ADDC A,@Ri
1
1
将累加器與間接位址的内容及進位C相加,結果存回累加器
8.ADDC A,#data
2
1
将累加器與常數及進位C相加,結果存回累加器
9.SUBB A,Rn
1
1
将累加器的值減去寄存器的值減借位C,結果存回累加器
10.SUBB A,direct
2
1
将累加器的值減直接位址的值減借位C,結果存回累加器
11.SUBB A,@Ri
1
1
将累加器的值減間接位址的值減借位C,結果存回累加器
12.SUBB A,0data
2
1
将累加器的值減常數值減借位C,結果存回累加器
13.INC A
1
1
将累加器的值加1
14.INC Rn
1
1
将寄存器的值加l
15.INC direct
2
1
将直接位址的内容加1
16.INC @Ri
1
1
将間接位址的内容加1
17.INC DPTR
1
1
資料指針寄存器值加1
說明:将16位的DPTR加1,當DPTR的低位元組(DPL)從FFH溢出至00H時,會使高位元組(DPH)加1,不影響任何标志位
18.DEC A
1
1
将累加器的值減1
19.DEC Rn
1
1
将寄存器的值減1
20.DEC direct
2
1
将直接位址的内容減1
21.DEC @Ri
1
1
将間接位址的内容減1
22.MUL AB
1
4
将累加器的值與B寄存器的值相乘,乘積的低位位元組存回累加器,高位位元組存回B寄存器
說明:将累加器A和寄存器B内的無符号整數相乘,産生16位的積,低位位元組存入A,高位位元組存入B寄存器。如果積大于FFH,則溢出标志位(OV)被設定為1,而進位标志位為0
23.DIV AB
1
4
将累加器的值除以B寄存器的值,結果的商存回累加器,餘數存回B寄存器
說明:無符号的除法運算,将累加器A除以B寄存器的值,商存入A,餘數存入B。執行本指令後,進位位(C)及溢出位(OV)被清除為0
24.DA A
1
1
将累加器A作十進制調整,
若(A) 3-0>9或(AC)=1,則(A) 3-0←(A)3-0+6
若(A) 7-4>9或 (C)=1,則(A) 7-4←(A)7-4+6
邏輯運算指令
ANL A,Rn
1
1
将累加器的值與寄存器的值做AND的邏輯判斷,結果存回累加器
ANL A,direct
2
1
将累加器的值與直接位址的内容做AND的邏輯判斷,結果存回累加器
ANL A,@Ri
1
1
将累加器的值與間接位址的内容做AND的邏輯判斷,結果存回累加器
ANL A,#data
2
1
将累加器的值與常數做AND的邏輯判斷,結果存回累加器
ANL direct,A
2
1
将直接位址的内容與累加器的值做AND的邏輯判斷,結果存回該直接位址
ANL direct,#data
3
2
将直接位址的内容與常數值做AND的邏輯判斷,結果存回該直接位址
ORL A,Rn
1
1
将累加器的值與寄存器的值做OR的邏輯判斷,結果存回累加器
32.ORL A,direct
2
1
将累加器的值與直接位址的内容做OR的邏輯判斷,結果存回累加器
33.ORL A,@Ri
1
1
将累加器的值與間接位址的内容做OR的邏輯判斷,結果存回累加器
34.ORL A,#data
2
1
将累加器的值與常數做OR的邏輯判斷,結果存回累加器
35.ORL direct,A
2
1
将直接位址的内容與累加器的值做OR的邏輯判斷,結果存回該直接位址
36.ORL direct,