1.組み立て説明書の分類
組み立て説明書には全部で7つのアドレッシングモードと111の説明書があります!
- バイト数
- シングルバイト命令:49
- 2バイト命令:46
- 3バイト命令:16
- 計算速度
- シングルサイクル命令:65
- 2サイクルの指示:44
- 4サイクルの指示:2
- 特徴
- データ転送カテゴリ:29
- 算術演算:24項目
- 論理演算:24項目
- コントロール転送カテゴリ:17
- ビット演算カテゴリ:17
2、アセンブリ命令フォーマット
[ラベル:]ニーモニック[オペランド] [;コメント]
- ラベル:命令の場所を示します。これは、ROMに格納されている命令の場所をマークするのと同じです。
- ニーモニック:これは命令の重要な部分です。
- オペランド:複数ある場合とない場合があります。指示に従って決定する必要があります。
- 注:これは、記述されたステートメントの意味、または必要に応じて指定できるプログラムの説明を説明するために使用されます。
3.組み立て説明書の一般的な記号の説明
- Rn:作業レジスタのレジスタR0 ... R7の1つ
- Ri:作業レジスタにR0またはR1を登録します
- #data: 8ビットの即時データ
- #data16: 16ビットの即時データ
- 直接:オンチップRAMまたはSFRのアドレス(8ビット)
- @:間接アドレス指定レジスタ
- ビット:オンチップRAMまたはSFRでビットアドレス指定できるビットアドレス
- addr11: 11ビットの宛先アドレス
- addr16: 16ビットの宛先アドレス
- Rel:補数の8ビットアドレスオフセット
- $:現在のコマンドの最初のバイトのアドレス
- X:オンチップRAMの直接アドレスまたはレジスタ
- (X):対応するアドレス単位の内容
- ←:矢印の右側のコンテンツが矢印の左側のユニットに送信されます
- →:矢印の左側のコンテンツが矢印の右側のユニットに送信されます
4.データ転送手順(29項目)
命令ニーモニック
MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP
アキュムレータをデスティネーションオペランドとする命令(4項目)
MOV A, Rn ;Rn→A
MOV A, direct ;(direct)→A
MOV A, @Ri ;(Ri)→A
MOV A, #data ;data→A
レジスタRnをデスティネーションオペランドとする命令(3項目)
MOV Rn, A ;A →Rn
MOV Rn, direct ;(direct)→Rn
MOV Rn, #data ;data→Rn
直接アドレスをデスティネーションオペランドとする命令(5項目)
MOV direct, A ;A→(direct)
MOV direct, Rn ;Rn→(direct)
MOV direct1,direct2
MOV direct, @Ri ;(Ri) →(direct)
MOV direct, #data ;data→(direct)
間接アドレスをデスティネーションオペランドとする命令(3項目)
MOV @Ri, A ;A →(Ri)
MOV @Ri, direct ;(direct) →(Ri)
MOV @Ri, #data ;data →(Ri)
16桁の送信指示(1項目)
MOV DPTR, #data16
8051は8ビットマシンであり、16ビットの即時転送命令のみです。
機能: 16ビットの即時データをDPTRに送信します。上位8ビットはDPHに送信され、下位8ビットはDPLに送信されます。
アキュムレータAとオフチップRAM間のデータ転送命令(4項目)
MOVX A, @Ri
MOVX @Ri, A
MOVX A, @DPTR
MOVX @DPTR, A
51では、Aアキュムレータのみが外部メモリRAMを処理できます。外部RAMに送信する必要のあるすべてのデータはAを介して送信する必要があり、読み取る外部RAM内のすべてのデータもAを介して読み取る必要があります。
ここでは、内部RAMと外部RAMの違いを確認できます。データは内部RAM間で直接転送できますが、外部では転送できません。
プログラムメモリ命令の読み取り(2項目)
MOVC A, @A+DPTR
MOVC A, @A+PC
このグループの命令は、ROM内の番号をAに送信するためのものです。この命令グループは、テーブルルックアップ命令とも呼ばれます。この命令は、ROMで準備されたテーブルをルックアップするためによく使用されます。説明:検索の結果はAに配置されます。したがって、この命令の実行の前後でAの値が異なります。
スタック操作(2項目)
PUSH direct ;SP ← SP+1,(SP) ← (direct)
POP direct ;(direct) ← (SP), SP←SP-1
1つ目は、直接の内容をスタックに送信するプッシュ命令です
。2つ目は、スタックの内容を直接に送り返すポップ命令です。
交換説明書(5項目)
XCH A, Rn ;A←→Rn
XCH A, direct ;A←→(direct)
XCH A, @Ri ;A←→(Ri)
XCHD A, @Ri ;A.3~A.0←→(Ri).3~(Ri).0
SWAP A ;A.3~A.0←→A.7~A.4
5.算術演算説明書(24項目)
ニモニック
ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV
加算命令
1.キャリービットなしの加算命令(4項目)
ADD A,#data ;A+data→A
ADD A,direct ;A+(direct )→A
ADD A,Rn ;A+Rn→A
ADD A,@Ri ;A+(Ri)→A
2.キャリービット付きの加算命令(4項目)
キャリービット付きの加算命令は、マルチバイト加算命令でよく使用されます。
ADDC A,Rn ;A+Rn+CY→A
ADDC A,direct ;A+(direct )+CY→A
ADDC A,@Ri ;A+(Ri)+CY→A
ADDC A,#data ;A+data+CY→A
3. 1つの命令を追加します(5項目)
INC A ;A+1→A,影响P标志
INC Rn ;Rn+1→Rn
INC direct ;(direct)+1→(direct)
INC @Ri ;((Ri))+1→((Ri))
INC DPTR ;DPTR+1→DPTR
4. 10進調整命令(1項目)
BCDコード加算を実行する場合、ADDおよびADDC命令に従ってBCDコード加算の結果を自動的に修正するために使用されます。
DA A
例:A = 0001 0101 BCD(10進数で15を表す)
ADD A,#8 ;执行完之后,A = 1DH DA A ;调整后,A = 23H
減算命令
1.借用による引き算の説明(4項目)
SUBB A,Rn ;A-Rn-CY→A
SUBB A,direct ;A-(direct )-CY→A
SUBB A,@Ri ;A-(Ri)-CY→A
SUBB A,#data ;A-data-CY→A