マイクロプロセッサ-8085命令セット
8085マイクロプロセッサのプログラミングを見てみましょう。
命令セットは、いくつかのタスクを実行するための命令コードです。それは5つのカテゴリーに分類されます。
S.No. | 指示と説明 |
---|---|
1 | 制御手順
以下は、制御命令のリストとその意味を示す表です。 |
2 | 論理命令
以下は、論理命令とその意味のリストを示す表です。 |
3 | 分岐手順
以下は、分岐命令とその意味のリストを示す表です。 |
4 | 算術命令
以下は、算術命令とその意味のリストを示す表です。 |
5 | データ転送手順
以下は、データ転送命令とその意味のリストを示す表です。 |
8085 –デモプログラム
それでは、上記の手順を使用して、いくつかのプログラムのデモンストレーションを見てみましょう-
2つの8ビット数の加算
3005Hおよび3006Hのメモリ位置にデータを追加し、その結果を3007Hのメモリ位置に格納するプログラムを作成します。
Problem demo −
(3005H) = 14H
(3006H) = 89H
Result −
14H + 89H = 9DH
プログラムコードは次のように書くことができます-
LXI H 3005H : "HL points 3005H"
MOV A, M : "Getting first operand"
INX H : "HL points 3006H"
ADD M : "Add second operand"
INX H : "HL points 3007H"
MOV M, A : "Store result at 3007H"
HLT : "Exit program"
メモリ位置の交換
5000Mと6000Mのメモリ位置でデータを交換するプログラムを作成します。
LDA 5000M : "Getting the contents at5000M location into accumulator"
MOV B, A : "Save the contents into B register"
LDA 6000M : "Getting the contents at 6000M location into accumulator"
STA 5000M : "Store the contents of accumulator at address 5000M"
MOV A, B : "Get the saved contents back into A register"
STA 6000M : "Store the contents of accumulator at address 6000M"
番号を昇順で並べる
メモリアドレス3000Hの最初の10個の数字を昇順で並べるプログラムを作成します。
MVI B, 09 :"Initialize counter"
START :"LXI H, 3000H: Initialize memory pointer"
MVI C, 09H :"Initialize counter 2"
BACK: MOV A, M :"Get the number"
INX H :"Increment memory pointer"
CMP M :"Compare number with next number"
JC SKIP :"If less, don’t interchange"
JZ SKIP :"If equal, don’t interchange"
MOV D, M
MOV M, A
DCX H
MOV M, D
INX H :"Interchange two numbers"
SKIP:DCR C :"Decrement counter 2"
JNZ BACK :"If not zero, repeat"
DCR B :"Decrement counter 1"
JNZ START
HLT :"Terminate program execution"