ランゲージ
English
サーチ
80c51 ファミリ インストラクション セット


Download PDF File 80c51ファミリー命令セット

80c51ファミリー命令セット

割込み応答時間: ハードウェアの説明を参照してください。
フラグ設定に影響する命令(1)
命令 フラグ   命令 フラグ
  C OV AC     C OV AC
ADD X X X   CLR C 0    
ADDC X X X   CPL C X    
SUBB X X X   ANL C,bit X    
MUL 0 X     ANL C,/bit X    
DIV 0 X     ORL C,bit X    
DA X       ORL C,/bit X    
RRC X       MOV C,bit X    
RLC X       CJNE X    
SETB 1              

(1) SFRバイト・アドレス208またはビット・アドレス209-215(PSWまたはPSWのビット)もフラグ設定に影響します。

命令セットとアドレッシング・モードに関する注意:
Rn 現在選択されているレジスタ・バンクのレジスタR7-R0です。
direct 8ビットの内部データ位置のアドレスです。内部データRAM位置(0-127)またはSFR(I/Oポート、制御レジスタ、ステータス・レジスタなど、(128-255))です。
@Ri レジスタR1またはR0によって直接指定される8ビットの内部データRAM位置(0-255)です。
#data 命令に含まれる8ビットの定数です。
#data 16 命令に含まれる16ビットの定数です。
addr 16 16ビットのディスティネーション・アドレスです。LCALLおよびLJMPで使用します。分岐は、64Kバイトのプログラム・メモリー・アドレス空間内の任意の位置で可能です。
addr 11 11ビットのディスティネーション・アドレスです。ACALLおよびAJMPで使用します。分岐は、後続命令の先頭バイトと同じプログラム・メモリーの先頭2バイト・ページ内で発生します。
rel 符号付き(2の補数)の8ビット・オフセット・バイトです。SJMPおよびすべての条件ジャンプで使用します。範囲は、後続命令の先頭バイトに相対的な-128~+127バイトです。
bit 内部データRAMまたは特殊機能レジスタの内のダイレクト・アドレッシング・ビットです。

Arithmetic operations

ニーモニック 説明 バイト マシン・サイクル
ADD A,Rn アキュムレータへのレジスタの加算 1 1
ADD A,direct アキュムレータへのダイレクト・バイトの加算 2 1
ADD A,@Ri アキュムレータへのインダイレクトRAMの加算 1 1
ADD A,#data アキュムレータへのイミディエイト・データの加算 2 1
ADDC A,Rn アキュムレータへのレジスタのキャリー付き加算 1 1
ADDC A,direct アキュムレータへのダイレクト・バイトのキャリー付き加算 2 1
ADDC A,@Ri アキュムレータへのインダイレクトRAMのキャリー付き加算 1 1
ADDC A,#data アキュムレータへのイミディエイト・データのキャリー付き加算 2 1
SUBB A,Rn アキュムレータからのレジスタのボロー付き減算 1 1
SUBB A,direct アキュムレータからのダイレクト・バイトのボロー付き減算 2 1
SUBB A,@Ri アキュムレータからのインダイレクトRAMのボロー付き減算 1 1
SUBB A,#data アキュムレータからのイミディエイト・データのボロー付き減算 2 1
INC A アキュムレータのインクリメント 1 1
INC Rn レジスタのインクリメント 1 1
INC direct インダイレクト・バイトのインクリメント 2 1
INC @Ri インダイレクトRAMのインクリメント 1 1
DEC A アキュムレータのデクリメント 1 1
DEC Rn レジスタのデクリメント 1 1
DEC direct インダイレクト・バイトのデクリメント 2 1
DEC @Ri インダイレクトRAMのデクリメント 1 1
INC DPTR データ・ポインターのインクリメント 1 2
MUL AB AとBの乗算 1 4
DIV AB BによるAの除算 1 4
DA A アキュムレータの小数位調整 1 1

論理演算

ニーモニック 説明 バイト マシン・サイクル
ANL A,Rn レジスタのアキュムレータへの論理積 1 1
ANL A,direct ダイレクト・バイトのアキュムレータへの論理積 2 1
ANL A,@Ri インダイレクトRAMのアキュムレータへの論理積 1 1
ANL A,#data イミディエイト値のアキュムレータへの論理積 2 1
ANL direct,A アキュムレータのダイレクト・バイトへの論理積 2 1
ANL direct,#data イミディエイト値のダイレクト・バイトへの論理積 3 2
ORL A,Rn レジスタのアキュムレータへの論理和 1 1
ORL A,direct ダイレクト・バイトのアキュムレータへの論理和 2 1
ORL A,@Ri インダイレクトRAMのアキュムレータへの論理和 1 1
ORL A,#data イミディエイト値のアキュムレータへの論理和 2 1
ORL direct,A アキュムレータのダイレクト・バイトへの論理和 2 1
ORL direct,#data イミディエイト値のダイレクト・バイトへの論理和 3 2
XRL A,Rn レジスタのアキュムレータへの排他的論理和 1 1
XRL A,direct ダイレクト・バイトのアキュムレータへの排他的論理和 2 1
XRL A,@Ri インダイレクトRAMのアキュムレータへの排他的論理和 1 1
XRL A,#data イミディエイト値のアキュムレータへの排他的論理和 2 1
XRL direct,A アキュムレータのダイレクト・バイトへの排他的論理和 2 1
XRL direct,#data イミディエイト値のダイレクト・バイトへの排他的論理和 3 2
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

データ転送

ニーモニック 説明 バイト マシン・サイクル
MOV A,Rn レジスタのアキュムレータへのムーブ 1 1
MOV A,direct ダイレクト・バイトのアキュムレータへのムーブ 2 1
MOV A,@Ri インダイレクトRAMのアキュムレータへのムーブ 1 1
MOV A,#data イミディエイト値のアキュムレータへのムーブ 2 1
MOV Rn,A アキュムレータのレジスタへのムーブ 1 1
MOV Rn,direct ダイレクト・バイトのレジスタへのムーブ 2 2
MOV RN,#data イミディエイト値のレジスタへのムーブ 2 1
MOV direct,A アキュムレータのダイレクト・バイトへのムーブ 2 1
MOV direct,Rn レジスタのダイレクト・バイトへのムーブ 2 2
MOV direct,direct ダイレクト・バイトのダイレクト・バイトへのムーブ 3 2
MOV direct,@Ri インダイレクトRAMのダイレクト・バイトへのムーブ 2 2
MOV direct,#data イミディエイト値のダイレクト・バイトへのムーブ 3 2
MOV @Ri,A アキュムレータのインダイレクトRAMへのムーブ 1 1
MOV @Ri,direct インダイレクトRAMのインダイレクトRAMへのムーブ 2 2
MOV @Ri,#data イミディエイト値のインダイレクトRAMへのムーブ 2 1
MOV DPTR,#data16 16ビット定数付きデータ・ポインターのロード 3 2
MOVC A,@A+DPTR DPTRに相対的なコード・バイトのアキュムレータへのムーブ 1 2
MOVC A,@A+PC PCに相対的なコード・バイトのアキュムレータへのムーブ 1 2
MOVX A,@Ri 外部RAM(8ビット・アドレス)のアキュムレータへのムーブ 1 2
MOVX A,@DPTR 外部RAM(16ビット・アドレス)のアキュムレータへのムーブ 1 2
MOVX @Ri,A アキュムレータの外部RAM(8ビット・アドレス)へのムーブ 1 2
MOVX @DPTR,A アキュムレータの外部RAM(16ビット・アドレス)へのムーブ 1 2
PUSH direct スタックへのダイレクト・バイトのプッシュ 2 2
POP direct スタックからのダイレクト・バイトのポップ 2 2
XCH A,Rn アキュムレータとのレジスタの交換 1 1
XCH A,direct アキュムレータとのダイレクト・バイトの交換 2 1
XCH A,@Ri アキュムレータとのインダイレクトRAMの交換 1 1
XCHD A,@Ri アキュムレータとの下位桁インダイレクトRAMの交換 1 1

論理変数操作

ニーモニック 説明 バイト マシン・サイクル
CLR C キャリーのクリア 1 1
CLR bit ダイレクト・ビットのクリア 2 1
SETB C キャリーのセット 1 1
SETB bit ダイレクト・ビットのセット 2 1
CPL C キャリーの補数 1 1
CPL bit ダイレクト・ビットの補数 2 1
ANL C,bit ダイレクト・ビットのキャリーへの論理積 2 2
ANL C,/bit ダイレクト・ビットの補数のキャリーへの論理積 2 2
ORL C,bit ダイレクト・ビットのキャリーへの論理和 2 2
ORL C,/bit ダイレクト・ビットの補数のキャリーへの論理和 2 2
MOV C,bit ダイレクト・ビットのキャリーへのムーブ 2 1
MOV bit,C キャリーのダイレクト・ビットへのムーブ 2 2
JC rel キャリーのセット時にジャンプ 2 2
JNC rel キャリーの非セット時にジャンプ 2 2
JB rel ダイレクト・ビットのセット時にジャンプ 3 2
JNB rel ダイレクト・ビットの非セット時にジャンプ 3 2
JBC bit,rel ダイレクト・ビットのセット時にジャンプしてビットをクリア 3 2

プログラム分岐

ニーモニック 説明 バイト マシン・サイクル
ACALL addr11 絶対サブルーチン・コール 2 2
LCALL addr16 ロング・サブルーチン・コール 3 2
RET   サブルーチンからのリターン 1 2
RETI   割込みからのリターン 1 2
AJMP addr11 絶対ジャンプ 2 2
LJMP addr16 ロング・ジャンプ 3 2
SJMP rel ショート・ジャンプ(相対アドレス) 2 2
JMP @A+DPTR DPTRに相対的なインダイレクト・ジャンプ 1 2
JZ rel アキュムレータがゼロのときにジャンプ 2 2
JNZ rel アキュムレータがゼロでなければジャンプ 2 2
CJNE A,direct,rel ダイレクト・バイトとアキュムレータを比較し、等しくなければジャンプ 3 2
CJNE A,#data,rel イミディエイト値とアキュムレータを比較し、等しくなければジャンプ 3 2
CJNE RN,#data,rel イミディエイト値とレジスタを比較し、等しくなければジャンプ 3 2
CJNE @Ri,#data,rel イミディエイト値とインダイレクトRAMを比較し、等しくなければジャンプ 3 2
DJNZ Rn,rel レジスタをデクリメントし、ゼロでなければジャンプ 2 2
DJNZ direct,rel ダイレクト・バイトをデクリメントし、ゼロでなければジャンプ 3 2
NOP   処理なし 1 1
すべてのニーモニックの著作権はインテル社に属します。© Intel Corporation 1980

注意
  • 12クロック・モードで動作するフィリップス80C51デバイスでは、1マシン・サイクル= 12オシレータ・クロック・サイクルです。
  • 6クロック・モードで動作するフィリップス80C51デバイスでは、1マシン・サイクル= 6オシレータ・クロック・サイクルです。
  • フィリップスLPC900ファミリー・デバイスでは、1マシン・サイクル= 2オシレータ・クロック・サイクルです。