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または特殊機能レジスタの内のダイレクト・アドレッシング・ビットです。 |
| ニーモニック |
説明 |
バイト |
マシン・サイクル |
| 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オシレータ・クロック・サイクルです。