Bộ vi xử lý - Bộ hướng dẫn 8085

Hãy cùng chúng tôi xem qua cách lập trình của Bộ vi xử lý 8085.

Bộ lệnh là mã lệnh để thực hiện một số tác vụ. Nó được phân thành năm loại.

Không. Hướng dẫn & Mô tả
1 Hướng dẫn kiểm soát

Sau đây là bảng hiển thị danh sách các lệnh Control với ý nghĩa của chúng.

2 Hướng dẫn logic

Sau đây là bảng hiển thị danh sách các hướng dẫn logic với ý nghĩa của chúng.

3 Hướng dẫn phân nhánh

Sau đây là bảng hiển thị danh sách các hướng dẫn Phân nhánh với ý nghĩa của chúng.

4 Hướng dẫn số học

Sau đây là bảng hiển thị danh sách các hướng dẫn Số học với ý nghĩa của chúng.

5 Hướng dẫn chuyển dữ liệu

Sau đây là bảng hiển thị danh sách các hướng dẫn Truyền dữ liệu với ý nghĩa của chúng.

8085 - Chương trình demo

Bây giờ, chúng ta hãy xem một số bản trình diễn chương trình bằng cách sử dụng các hướng dẫn ở trên -

Thêm hai số 8 bit

Viết chương trình thêm dữ liệu vào vị trí bộ nhớ 3005H & 3006H và lưu kết quả ở vị trí bộ nhớ 3007H.

Problem demo -

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

Result -

14H + 89H = 9DH

Mã chương trình có thể được viết như thế này -

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"

Trao đổi vị trí bộ nhớ

Viết chương trình trao đổi dữ liệu ở vị trí bộ nhớ 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"

Sắp xếp các số theo thứ tự tăng dần

Viết chương trình sắp xếp 10 số đầu tiên từ ô nhớ địa chỉ 3000H theo thứ tự tăng dần.

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"