微处理器 - 8085 指令集
让我们来看看 8085 微处理器的编程。
指令集是执行某些任务的指令代码。它分为五类。
S.No. | 指令和描述 |
---|---|
1 | 控制指令
以下表格显示了控制指令及其含义的列表。 |
2 | 逻辑指令
以下表格显示了逻辑指令及其含义的列表。 |
3 | 分支指令
以下表格显示了分支指令及其含义的列表。 |
4 | 算术指令
以下表格显示了算术指令及其含义的列表。 |
5 | 数据传输指令
下表列出了数据传输指令及其含义。 |
8085 – 演示程序
现在,让我们看一些使用上述指令的程序演示 −
添加两个 8 位数
编写一个程序,在 3005H 和 3006H 内存位置添加数据,并将结果存储在 3007H 内存位置。
问题演示 −
(3005H) = 14H (3006H) = 89H
结果 −
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"