ไมโครโปรเซสเซอร์ - ชุดคำสั่ง 8085

ให้เรามาดูการเขียนโปรแกรมของไมโครโปรเซสเซอร์ 8085

ชุดคำสั่งคือรหัสคำสั่งในการทำงานบางอย่าง แบ่งออกเป็นห้าประเภท

ส. คำแนะนำและคำอธิบาย
1 คำแนะนำในการควบคุม

ต่อไปนี้เป็นตารางแสดงรายการคำสั่ง Control พร้อมความหมาย

2 คำแนะนำเชิงตรรกะ

ต่อไปนี้เป็นตารางแสดงรายการคำสั่งตรรกะพร้อมความหมาย

3 คำแนะนำในการแยกสาขา

ต่อไปนี้เป็นตารางแสดงรายการคำสั่งการแตกแขนงพร้อมความหมาย

4 คำแนะนำทางคณิตศาสตร์

ต่อไปนี้เป็นตารางแสดงรายการคำสั่งเลขคณิตพร้อมความหมาย

5 คำแนะนำในการโอนข้อมูล

ต่อไปนี้เป็นตารางแสดงรายการคำแนะนำการโอนข้อมูลพร้อมความหมาย

8085 - โปรแกรมสาธิต

ตอนนี้ให้เราดูการสาธิตโปรแกรมโดยใช้คำแนะนำด้านบน -

การเพิ่มตัวเลข 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"

จัดเรียงตัวเลขตามลำดับจากน้อยไปมาก

เขียนโปรแกรมเพื่อจัดเรียงตัวเลข 10 ตัวแรกจากที่อยู่หน่วยความจำ 3000H ตามลำดับจากน้อยไปมาก

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"