微处理器 - 8085 指令集


让我们看一下8085微处理器的编程。

指令集是执行某些任务的指令代码。它分为五类。

编号 说明和描述
1 控制指令

下表显示了控制指令列表及其含义。

2 逻辑指令

下表显示了逻辑指令及其含义的列表。

3 分支指令

下表显示了分支指令及其含义的列表。

4 算术指令

下表显示了算术指令及其含义的列表。

5 数据传输说明

下表显示了数据传输指令及其含义的列表。

8085 – 演示程序

现在,让我们看一下使用上述说明的一些程序演示 -

两个 8 位数字相加

编写一个程序,将3005H和3006H内存位置的数据相加,并将结果存储到3007H内存位置。

问题演示-

(3005H) = 14H 
   (3006H) = 89H

结果-

14H + 89H = 9DH

程序代码可以这样写 -

LXI H 3005H:“HL 点 3005H”
MOV A, M :“获取第一个操作数”
INX H:“HL点数3006H”
ADD M :“添加第二个操作数”
INX H:“HL点数3007H”
MOV M, A :“将结果存储在 3007H”
HLT :“退出程序”

交换内存位置

编写一个程序来交换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"