天天看點

51單片機彙編指令集 (指令集帶英文翻譯)

51單片機彙編指令集 (指令集帶英文翻譯)

一、資料傳送類指令(7種助記符)

MOV(英文為Move):對内部資料寄存器RAM和特殊功能寄存器SFR的資料進行傳送;

MOVC(Move Code)讀取程式存儲器資料表格的資料傳送;

MOVX (Move External RAM) 對外部RAM的資料傳送;

XCH (Exchange) 位元組交換;

XCHD (Exchange low-order Digit) 低半位元組交換;

PUSH (Push onto Stack) 入棧;

POP  (Pop from Stack) 出棧;

二、算術運算類指令(8種助記符)

ADD(Addition) 加法;

ADDC(Add with Carry) 帶進位加法;

SUBB(Subtract with Borrow) 帶借位減法;

DA(Decimal Adjust) 十進制調整;

INC(Increment) 加1;

DEC(Decrement) 減1;

MUL(Multiplication、Multiply) 乘法;

DIV(Division、Divide) 除法;

三、邏輯運算類指令(10種助記符)

ANL(AND Logic) 邏輯與;

ORL(OR Logic) 邏輯或;

XRL(Exclusive-OR Logic) 邏輯異或;

CLR(Clear) 清零;

CPL(Complement) 取反;

RL(Rotate left) 循環左移;

RLC(Rotate Left throught the Carry flag) 帶進位循環左移;

RR(Rotate Right) 循環右移;

RRC (Rotate Right throught the Carry flag) 帶進位循環右移;

SWAP (Swap) 低4位與高4位交換;

四、控制轉移類指令(17種助記符)

ACALL(Absolute subroutine Call)子程式絕對調用;

LCALL(Long subroutine Call)子程式長調用;

RET(Return from subroutine)子程式傳回;

RETI(Return from Interruption)中斷傳回;

SJMP(Short Jump)短轉移;

AJMP(Absolute Jump)絕對轉移;

LJMP(Long Jump)長轉移;

CJNE (Compare Jump if Not Equal)比較不相等則轉移;

DJNZ (Decrement Jump if Not Zero)減1後不為0則轉移;

JZ (Jump if Zero)結果為0則轉移;

JNZ (Jump if Not Zero) 結果不為0則轉移;

JC (Jump if the Carry flag is set)有進位則轉移;

JNC (Jump if Not Carry)無進位則轉移;

JB (Jump if the Bit is set)位為1則轉移;

JNB (Jump if the Bit is Not set) 位為0則轉移;

JBC(Jump if the Bit is set and Clear the bit) 位為1則轉移,并清除該位;

NOP (No Operation) 空操作;

五、位操作指令(1種助記符)

CLR 位清零;

SETB(Set Bit) 位 置1 。

8種常用僞指令

1.ORG   16位位址;

此指令用在原程式或資料塊的開始,指明此語句後面目标程式或資料塊存放的起始位址。

2.[标号:] DB 位元組資料項表;

将項表中的位元組資料存放到從标号開始的連續位元組單元中。例如:SEG: DB 88H,100,“7”,“C”

3.[标号:]DW   雙位元組資料項表;

定義16位位址表,16位址按低位位址存低位位元組,高位位址存高位位元組。

例如:TAB: DW 1234H,7BH

4.名字 EQU 表達式 或名字=表達式;

用與給一個表達式指派或給字元串起名字。之後名字可用做程式位址,資料位址或立即數位址使用。名字必須是一字母開頭的字母數字串。

例如:COUNT=10 或 SPACE EQU 10H

5.名字 DATA 直接位元組位址;

給8位内部RAM單元起個名字,名字必須是一字母開頭的字母數字串。同一單元可起多個名字。

例如:ERROR DATA 80H

6.名字 XDATA 直接位元組位址;

給8位外部RAM起個名字,名字規定同DATA僞指令。

例如:IO_PORT XDATA 0CF04H

7.名字 BIT 位指令;

給一可位尋址的位單元起個名字,規定同DATA僞指令。

例如:SWT BIT 30H

8.[标号:] END;

指出源程式到此結束,彙編對其後的程式語句不予理睬。源程式隻在主程式最後使用一個END。

1.資料傳送指令(30條)

MOV A,Rn 寄存器送 A 1 1 E8--EF

MOV A,data 直接位元組送A 2 1 E5

MOV A,@Ri 間接RAM 送A 1 1 E6--E7

MOV A,#data 立接數送 A 2 1 74

MOV Rn,A A 送寄存器 1 1 F8--FF

MOV Rn,data 直接數送寄存器 2 2 A8--AF

MOV Rn,#data 立即數送寄存器 2 1 78--7F

MOV data,A A 送直接位元組 2 1 F5

MOV data,Rn 寄存器送直接位元組 2 1 88—8F

MOV data,data 直接位元組送直接位元組 3 2 85

MOV data,@Ri 間接 Rn 送直接位元組 2 286;87

MOV data,#data 立即數送直接位元組 3 2 75

MOV @Ri,A A 送間接 Rn 1 2 F6;F7

MOV @Ri,data 直接位元組送間接Rn 1 1 A6;A7

MOV @Ri,#data 立即數送間接 Rn 2 2 76;77

MOV DPTR,#data16 16 位常數送資料指針 3 1 90

MOV C,bit 直接位送進位位 2 1 A2

MOV bit,C 進位位送直接位 2 2 92

MOVC A,@A+DPTR A+DPTR 尋址程式存貯位元組送 A 3 2 93

MOVC A,@A+PC A+PC 尋址程式存貯位元組送A 1 2 83

MOVX A,@Ri 外部資料送A(8 位位址) 1 2 E2;E3

MOVX A,@DPTR 外部資料送A(16 位位址) 1 2 E0

MOVX @Ri,A A 送外部資料(8 位位址) 1 2F2;F3

MOVX @DPTR,A A 送外部資料(16 位位址) 12 F0

PUSH data 直接位元組進棧道,SP 加1 2 2 C0

POP data 直接位元組出棧,SP 減1 2 2 D0

XCH A,Rn 寄存器與 A 交換 1 1 C8—CF

XCH A,data 直接位元組與A 交換 2 1 C5

XCH A,@Ri 間接Rn 與A 交換 1 1 C6;C7

XCHD A,@Ri 間接Rn 與A 低半位元組交換 1 1 D6;D7

2.邏輯運算指令(35條)

ANL A,Rn 寄存器與到A 1 1 58—5F

ANL A,data 直接位元組與到A 2 1 55

ANL A,@Ri 間接RAM與到A 1 1 56;57

ANL A,#data 立即數與到A 2 1 54

ANL data,A A與到直接位元組 2 1 52

ANL data,#data 立即數與到直接位元組 3 2 53

ANL C,bit 直接位與到進位位 2 2 82

ANL C,/bit 直接位的反碼與到進位位 2 2 B0

ORL A,Rn 寄存器或到A 1 1 48—4F

ORL A,data 直接位元組或到A 2 1 45

ORL A,@Ri 間接RAM或到A 1 1 46;47

ORL A,#data 立即數或到A 2 1 44

ORL data,A A或到直接位元組 2 1 42

ORL data,#data 立即數或到直接位元組 3 2 43

ORL C,bit 直接位或到進位位 2 2 72

ORL C,/bit 直接位的反碼或到進位位 2 2 A0

XRL A,Rn 寄存器異或到A 1 1 68—6F

XRL A,data 直接位元組異或到A 2 1 65

XRL A,@Ri 間接RAM異或到A 1 1 66;67

XRL A,#data 立即數異或到A 2 1 64

XRL data,A A異或到直接位元組 2 1 62

XRL data,#data 立即數異或到直接位元組 3 2 63

SETB C 進位位置 1 1 1 D3

SETB bit 直接位置 1 2 1 D2

CLR A A清0 1 1 E4

CLR C 進位位清 0 1 1 C3

CLR bit 直接位清 0 2 1 C2

CPL A A求反碼 1 1 F4

CPL C 進位位取反 1 1 B3

CPL bit 直接位取反 2 1 B2

RL A A循環左移一位 1 1 23

RLC A A 帶進位左移一位 1 1 33

RR A A右移一位 1 1 03

RRC A A 帶進位右移一位 1 1 13

SWAP A A 半位元組交換 1 1 C4

3.算術運算指令(24條)

ADD A,Rn 寄存器加到A 1 1 28—2F

ADD A,data 直接位元組加到A 2 1 25

ADD A,@Ri 間接RAM 加到A 1 1 26;27

ADD A,#data 立即數加到A 2 1 24

ADDC A,Rn 寄存器帶進位加到 A 1 1 38—3F

ADDC A,data 直接位元組帶進位加到A 2 1 35

ADDC A,@Ri 間接RAM 帶進位加到A 1 136;37

ADDC A,#data 立即數帶進位加到 A 2 1 34

SUBB A,Rn 從A 中減去寄存器和進位 1 198—9F

SUBB A,data 從A 中減去直接位元組和進位 2 195

SUBB A,@Ri 從A 中減去間接RAM 和進位 1 1 96;97

SUBB A,#data 從A 中減去立即數和進位 2 194

INC A A加1 1 1 04

INC Rn 寄存器加 1 1 1 08—0F

INC data 直接位元組加1 2 1 05

INC @Ri 間接RAM 加1 1 1 06;07

INC DPTR 資料指針加1 1 2 A3

DEC A A減1 1 1 14

DEC Rn 寄存器減 1 1 1 18—1F

DEC data 直接位元組減1 2 1 15

DEC @Ri 間接RAM 減1 1 1 16;17

MUL AB A乘B 1 4 A4

DIV AB A被B除 1 4 84

DA A A十進制調整 1 1 D4

4.轉移指令(22條)

AJMP addr 11 絕對轉移 2 2 *1

LJMP addr 16 長轉移 3 2 02

SJMP rel 短轉移 2 2 80

JMP @A+DPTR 相對于DPTR 間接轉移 1 2 73

JZ rel 若A=0 則轉移 2 2 60

JNZ rel 若A≠0 則轉移 2 2 70

JC rel 若C=1 則轉移 2 2 40

JNC rel 若C≠1 則轉移 2 2 50

JB bit,rel 若直接位=1 則轉移 3 2 20

JNB bit,rel 若直接位=0 則轉移 3 2 30

JBC bit,rel 若直接位=1 則轉移且清除 3 210

CJNE A,data,rel 直接數與 A 比較,不等轉移3 2 B5

CJNE A,#data,rel 立即數與 A 比較,不等轉移3 2 B4

CJNE @Ri,#data,rel 立即數與間接RAM比較,不等轉移 3 2 B6;B7

CJNE Rn,#data,rel 立即數與寄存器比較不等轉移 3 2 B8—BF

DJNZ Rn,rel 寄存器減 1 不為0 轉移 2 2 D8—DF

DJNZ data,rel 直接位元組減1 不為 0 轉移 3 2 D5

ACALL addr 11 絕對子程式調用 2 2 *1

LCALL addr 16 子程式調用 3 2 12

RET 子程式調用傳回 1 2 22

RETI 中斷程式調用傳回 1 2 32

NOP 空操作 1 1 00

版本二

彙編指令英文全稱

1.通用資料傳送指令

MOV---->move

 MOV dest,src ;dest←src

 MOV指令把一個位元組或字的操作數從源位址src傳送至目的位址dest。

MOVSX---->extendedmove with sign data

MOVZX---->extendedmove with zero data

PUSH---->push

POP---->pop

進棧出棧指令

PUSHA---->pushall

POPA---->popall

PUSHAD---->pushall data

POPAD---->pop all data

BSWAP---->byteswap

XCHG---->exchange

交換指令用來将源操作數和目的操作數内容交換,操作數可以是字、也可以是位元組,可以在通用寄存器與通用寄存器或存儲器之間對換資料,但不能在存儲器與存儲器之間對換資料。

movax,1234h ;ax=1234h

movbx,5678h ;bx=5678h

xchgax,bx ;ax=5678h,bx=1234h

xchgah,al ;ax=7856h

CMPXCHG---->compareand change

XADD---->exchangeand add

XLAT---->translate

換碼指令用于将BX指定的緩沖區中、AL指定的位移處的資料取出賦給AL。

2.輸入輸出端口傳送指令

IN---->input

OUT---->output

3.目的位址傳送指令

LEA---->load effective addres

有效位址傳送指令

movbx,0400h

movsi,3ch

leabx,[bx+si+0f62h];BX=139EH

這裡BX得到的是主存單元的有效位址,不是實體位址,也不是該單元的内容。

LDS---->loadDS

LES---->loadES

LFS---->loadFS

LGS---->loadGS

LSS---->loadSS

4.标志傳送指令

LAHF---->load AH from flag

SAHF---->save AH to flag

PUSHF---->pushflag

POPF---->popflag

PUSHD---->pushdflag

POPD---->popdflag

二、算術運算指令

ADD---->add

加法指令 mov al,0fbh ;al=0fbh

addal,07h ;al=02h

ADC---->addwith carry

INC---->increase1

AAA---->asciiadd with adjust

DAA---->decimaladd with adjust

SUB---->substract

SBB---->substractwith borrow

DEC---->decreasesubstract 1

NEC---->negative

CMP---->compare

AAS---->asciiadjust on substract

DAS---->decimaladjust on substract

MUL---->multiplication

IMUL---->integermultiplication

AAM---->asciiadjust on multiplication

DIV---->divide

IDIV---->integerdivide

AAD---->asciiadjust on divide

CBW---->change byte to word

CWD---->changeword to double word

CWDE---->changeword to double word with sign to EAX

CDQ---->changedouble word to quadrate word

三、邏輯運算指令

AND---->and

or---->or

XOR---->xor

NOT---->not

TEST---->test

SHL---->shiftleft

SAL---->arithmaticshift left

SHR---->shiftright

SAR---->arithmaticshift right

ROL---->rotateleft

ROR---->rotateright

RCL---->rotateleft with carry

RCR---->rotateright with carry

四、串指令

MOVS---->move string

CMPS---->comparestring

SCAS---->scanstring

LODS---->loadstring

STOS---->storestring

REP---->repeat

REPE---->repeatwhen equal

REPZ---->repeatwhen zero flag

REPNE---->repeatwhen not equal

REPNZ---->repeatwhen zero flag

REPC---->repeatwhen carry flag

REPNC---->repeatwhen not carry flag

五、程式轉移指令

1>無條件轉移指令(長轉移)

JMP---->jump

CALL---->call

RET---->return

RETF---->returnfar

2>條件轉移指令(短轉移,-128到+127的距離内)

JAE---->jumpwhen above or equal

JNB---->jumpwhen not below

JB---->jumpwhen below

JNAE---->jumpwhen not above or equal

JBE---->jumpwhen below or equal

JNA---->jumpwhen not above

JG---->jumpwhen greater

JNLE---->jumpwhen not less or equal

JGE---->jumpwhen greater or equal

JNL---->jumpwhen not less

JL---->jumpwhen less

JNGE---->jumpwhen not greater or equal

JLE---->jumpwhen less or equal

JNG---->jumpwhen not greater

JE---->jumpwhen equal

JZ---->jumpwhen has zero flag

JNE---->jumpwhen not equal

JNZ---->jumpwhen not has zero flag

JC---->jumpwhen has carry flag

JNC---->jumpwhen not has carry flag

JNO---->jumpwhen not has overflow flag

JNP---->jumpwhen not has parity flag

JPO---->jumpwhen parity flag is odd

JNS---->jumpwhen not has sign flag

JO---->jumpwhen has overflow flag

JP---->jumpwhen has parity flag

JPE---->jumpwhen parity flag is even

JS---->jumpwhen has sign flag

3>循環控制指令(短轉移)

LOOP---->loop

LOOPE---->loopequal

LOOPZ---->loopzero

LOOPNE---->loopnot equal

LOOPNZ---->loopnot zero

JCXZ---->jumpwhen CX is zero

JECXZ---->jumpwhen ECX is zero

4>中斷指令

INT---->interrupt

INTO---->overflowinterrupt

IRET---->interruptreturn

5>處理器控制指令

HLT---->halt

WAIT---->wait

ESC---->escape

LOCK---->lock

NOP---->nooperation

STC---->setcarry

CLC---->clearcarry

CMC---->carrymake change

STD---->setdirection

CLD---->cleardirection

STI---->setinterrupt

CLI---->clearinterrupt

 六、僞指令

DW---->definw word

PROC---->procedure

ENDP---->endof procedure

SEGMENT---->segment

ASSUME---->assume

ENDS---->endsegment

END---->end

彙編指令中文釋義

資料傳輸指令

───────────────────────────────────────

它們在存貯器和寄存器、寄存器和輸入輸出端口之間傳送資料.

1. 通用資料傳送指令.

MOV傳送字或位元組.

MOVSX先符号擴充,再傳送.

MOVZX先零擴充,再傳送.

PUSH把字壓入堆棧.

POP把字彈出堆棧.

PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次壓入堆棧.

POPA把DI,SI,BP,SP,BX,DX,CX,AX依次彈出堆棧.

PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次壓入堆棧.

POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次彈出堆棧.

BSWAP交換32位寄存器裡位元組的順序

XCHG交換字或位元組.( 至少有一個操作數為寄存器,段寄存器不可作為操作數)

CMPXCHG比較并交換操作數.(第二個操作數必須為累加器AL/AX/EAX )

XADD先交換再累加.( 結果在第一個操作數裡 )

XLAT位元組查表轉換.

──BX 指向一張256 位元組的表的起點, AL 為表的索引值 (0-255,即

0-FFH);傳回 AL 為查表結果. ( [BX+AL]->AL )

2. 輸入輸出端口傳送指令.

INI/O端口輸入.( 文法: IN 累加器, {端口号│DX} )

OUTI/O端口輸出.( 文法: OUT {端口号│DX},累加器 )

輸入輸出端口由立即方式指定時, 其範圍是 0-255; 由寄存器DX 指定時,

其範圍是 0-65535.

3. 目的位址傳送指令.

LEA裝入有效位址.

例: LEA DX,string ;把偏移位址存到DX.

LDS傳送目标指針,把指針内容裝入DS.

例: LDS SI,string ;把段位址:偏移位址存到DS:SI.

LES傳送目标指針,把指針内容裝入ES.

例: LES DI,string ;把段位址:偏移位址存到ES:DI.

LFS傳送目标指針,把指針内容裝入FS.

例: LFS DI,string ;把段位址:偏移位址存到FS:DI.

LGS傳送目标指針,把指針内容裝入GS.

例: LGS DI,string ;把段位址:偏移位址存到GS:DI.

LSS傳送目标指針,把指針内容裝入SS.

例: LSS DI,string ;把段位址:偏移位址存到SS:DI.

4. 标志傳送指令.

LAHF标志寄存器傳送,把标志裝入AH.

SAHF标志寄存器傳送,把AH内容裝入标志寄存器.

PUSHF标志入棧.

POPF标志出棧.

PUSHD32位标志入棧.

POPD32位标志出棧.

二、算術運算指令

───────────────────────────────────────

ADD加法.

ADC帶進位加法.

INC加 1.

AAA加法的ASCII碼調整.

DAA加法的十進制調整.

SUB減法.

SBB帶借位減法.

DEC減 1.

NEC求反(以 0 減之).

CMP比較.(兩操作數作減法,僅修改标志位,不回送結果).

AAS減法的ASCII碼調整.

DAS減法的十進制調整.

MUL無符号乘法.

IMUL整數乘法.

以上兩條,結果回送AH和AL(位元組運算),或DX和AX(字運算),

AAM乘法的ASCII碼調整.

DIV無符号除法.

IDIV整數除法.

以上兩條,結果回送:

商回送AL,餘數回送AH, (位元組運算);

或 商回送AX,餘數回送DX, (字運算).

AAD除法的ASCII碼調整.

CBW位元組轉換為字. (把AL中位元組的符号擴充到AH中去)

CWD字轉換為雙字. (把AX中的字的符号擴充到DX中去)

CWDE字轉換為雙字. (把AX中的字元号擴充到EAX中去)

CDQ雙字擴充. (把EAX中的字的符号擴充到EDX中去)

三、邏輯運算指令

───────────────────────────────────────

AND與運算.

or 或運算.

XOR異或運算.

NOT取反.

TEST測試.(兩操作數作與運算,僅修改标志位,不回送結果).

SHL邏輯左移.

SAL算術左移.(=SHL)

SHR邏輯右移.

SAR算術右移.(=SHR)當值為負時,高位補 1 ;當值為正時,高位補 0

ROL循環左移.

ROR循環右移.

RCL通過進位的循環左移.

RCR通過進位的循環右移.

以上八種移位指令,其移位次數可達255次.

移位一次時, 可直接用操作碼. 如 SHLAX,1.

移位>1次時, 則由寄存器CL給出移位次數.

如 MOV CL,04

SHLAX,CL

四、串指令

───────────────────────────────────────

DS:SI源串段寄存器 :源串變址.

ES:DI目标串段寄存器:目标串變址.

CX 重複次數計數器.

AL/AX掃描值.

D标志 0表示重複操作中SI和DI應自動增量; 1表示應自動減量.

Z标志 用來控制掃描或比較操作的結束.

MOVS串傳送.

(MOVSB 傳送字元. MOVSW 傳送字. MOVSD 傳送雙字. )

CMPS串比較.

( CMPSB比較字元.CMPSW 比較字. )

SCAS串掃描.

把AL或AX的内容與目标串作比較,比較結果反映在标志位.

LODS裝入串.

把源串中的元素(字或位元組)逐一裝入AL或AX中.

(LODSB 傳送字元. LODSW 傳送字. LODSD 傳送雙字. )

STOS儲存串.

是LODS的逆過程.

REP當CX/ECX<>0時重複.

REPE/REPZ當ZF=1或比較結果相等,且CX/ECX<>0時重複.

REPNE/REPNZ當ZF=0或比較結果不相等,且CX/ECX<>0時重複.

REPC當CF=1且CX/ECX<>0時重複.

REPNC當CF=0且CX/ECX<>0時重複.

五、程式轉移指令

───────────────────────────────────────

1>無條件轉移指令 (長轉移)

JMP無條件轉移指令

CALL過程調用

RET/RETF過程傳回.

2>條件轉移指令 (短轉移,-128到+127的距離内)

( 當且僅當(SF XOR OF)=1時,OP1 JA/JNBE 不小于或不等于時轉移.

JAE/JNB大于或等于轉移.

JB/JNAE小于轉移.

JBE/JNA小于或等于轉移.

以上四條,測試無符号整數運算的結果(标志C和Z).

JG/JNLE大于轉移.

JGE/JNL大于或等于轉移.

JL/JNGE小于轉移.

JLE/JNG小于或等于轉移.

以上四條,測試帶符号整數運算的結果(标志S,O和Z).

JE/JZ等于轉移.

JNE/JNZ不等于時轉移.

JC 有進位時轉移.

JNC無進位時轉移.

JNO不溢出時轉移.

JNP/JPO奇偶性為奇數時轉移.

JNS符号位為"0" 時轉移.

JO 溢出轉移.

JP/JPE奇偶性為偶數時轉移.

JS 符号位為 "1" 時轉移.

3>循環控制指令(短轉移)

LOOPCX不為零時循環.

LOOPE/LOOPZCX不為零且标志Z=1時循環.

LOOPNE/LOOPNZCX不為零且标志Z=0時循環.

JCXZCX為零時轉移.

JECXZECX為零時轉移.

4>中斷指令

INT中斷指令

INTO溢出中斷

IRET中斷傳回

5>處理器控制指令

HLT處理器暫停, 直到出現中斷或複位信号才繼續.

WAIT當晶片引線TEST為高電平時使CPU進入等待狀态.

ESC轉換到外處理器.

LOCK封鎖總線.

NOP空操作.

STC置進位标志位.

CLC清進位标志位.

CMC進位标志取反.

STD置方向标志位.

CLD清方向标志位.

STI置中斷允許位.

CLI清中斷允許位.

六、僞指令

─────────────────────────────────────

DW 定義字(2位元組).

PROC定義過程.

ENDP過程結束.

SEGMENT定義段.

ASSUME建立段寄存器尋址.

ENDS段結束.

END程式結束.

版本三

單片機 彙編語言指令的英文全稱

      最近在學習單片機彙編語言程式設計的過程中,我發現某些彙編語言指令(如DJNZ、CJNE等)不好記,每次用到還得查課本。實際上這些指令都是由英文簡寫而來的,為此我找了一些資料,整理了彙編語言指令的英文全稱,如下:MOV     (Move)

MOVC (Move Code)

MOVX (Move External)

XCH    (Exchange)

PUSH

POP

AJMP  (Absolute Jump)

LJMP   (Long Jump)

SJMP   (Short Jump)

JMP     (Jump Indirect)

JZ         (Jump Zero)

JNZ     (Jump Not Zero)

JC         (Jump if Carry)

JNC     (Jump if Not Carry)

JB         (Jump if Bit is set)

JNB     (Jump if Not Bit)

JBC       (If Bit is set and Clear Bit)

CJNE   (Compare and Jump if Not Equal)

DJNZ   (Decrement and Jump if Not Zero)

ACALL (Absolute Call)

LCALL (Long Call)

RET       (Return)

NOP     (No Operation)

ADD

ADDC (Add with Carry)

SUBB  (Substract with Borrow)

MUL    (Multiply)

DIV       (Divide)

INC     (Increment)

DEC    (Decrement)

ANL    (Logical AND)

ORL    (Logical OR)

XRL    (Logical Exclusive OR)

CPL    (Complement)

CLR    (Clear)

SEBT  (Set Bit)

RL        (Rotate Left)

RR        (Rotate Right)

RLC    (Rotate Left throught the Carry flag)

RRC    (Rotate Right throught the Carry flag)

XCHD

SWAP

DA      (Decimal Adjust)

ORG   (Origin)

DB      (Define Byte)

DW     (Define Word)

EQU    (Equal)

DATA

XDATA (External Data)

BIT

END