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"