Chương 5: Cấu trúc Vi xử lý 8085A
Cấu tạo Vi xử lý 8085A gồm 3 phần: Đơn vò số học-logic,
các thanh ghi và đơn vò điều khiển. Các thanh ghi trong 8085A
được chia ra như sau:
Bộ đếm chương trình (PC) và con trỏ ngăn xếp (SP): là
hai thanh ghi có độ dài 16 bit nên Vi xử lý có thể truy xuất được
một lượng ô nhớ là 2
16
= 65536 byte hay 64Kbyte.
Bộ tích lũy (Accummulator): Có ký hiệu là A, độ dài 8 bit.
Đây là thanh ghi quan trọng nhất trong Vi xử lý, hầu hết các quá
trình tính toán đều xảy ra trên thanh ghi này.
Thanh ghi trạng thái (Status Register): Có tên khác là
thanh ghi cờ (Flag), ký hiệu là F, thanh ghi này có độ dài 8 bit
trong đó có 5 bit trạng thái dùng để phản ánh trạng thái của Vi
xử lý khi thực hiện xong một lệnh.
S Z
x A
C
x P x C
y
S - Sign (bit dấu)
S = 1 Khi kết quả là số âm.
S = 0 Khi kết quả là số dương.
Z - Zero (bit zero)
Z = 1 Khi kết quả bằng 0.
Z = 0 Khi kết quả khác 0.
AC - Auxiliary Carry (bit số nhớ phụ)
AC = 1 Khi phép tính bò tràn trên bit 3.
AC = 0 Khi phép tính không tràn trên bit 3.
P - Parity (bit chẵn lẻ)
MVI M, data Truyền tức thời dữ liệu 8 bit vào ô nhớ có
đòa chỉ chứa trong cặp thanh ghi HL.
LXI r
p
, dw Nạp tức thời dữ liệu 16 bit vào cặp thanh ghi
r
p
.
LDA addr Nạp trực tiếp nội dung ô nhớ có đòa chỉ là addr
vào thanh ghi A.
LDAX r
p
Nạp gián tiếp nội dung ô nhớ có đòa chỉ
chứa trong cặp thanh ghi r
p
vào thanh ghi A.
LHLD addr Nạp trực tiếp nội dung ô nhớ có đòa
chỉ là addr vào thanh ghi L, nội dung ô nhớ có
đòa chỉ addr+1 vào thanh ghi H.
STA addr Lưu trữ trực tiếp nội dung thanh ghi A vào ô
nhớ có đòa chỉ addr.
STAXr
p
Lưu trữ gián tiếp nội dung thanh ghi A vào ô
nhớ có đòa chỉ chứa trong cặp thanh ghi r
p
.
SHLD addr Lưu trữ trực tiếp nội dung thanh ghi L
vào ô nhớ có đòa chỉ addr, nội dung thanh ghi
H vào ô nhớ có đòa chỉ addr+1.
dữ liệu.
ANA sr AND giữa nội dung thanh ghi A với nội dung
thanh ghi sr.
ANA M AND giữa nội dung thanh ghi A với nội dung
ô nhớ có đòa chỉ chứa trong cặp thanh ghi HL.
ANI data AND giữa nội dung thanh ghi A với dữ liệu.
ORA sr OR giữa nội dung thanh ghi A với nội dung
thanh ghi sr.
ORA M OR giữa nội dung thanh ghi A với nội dung ô
nhớ có đòa chỉ chứa trong cặp thanh ghi HL.
ORI data OR giữa nội dung thanh ghi A với dữ liệu.
XRA sr EXOR giữa nội dung thanh ghi A với nội dung
thanh ghi sr.
XRA M EXOR giữa nội dung thanh ghi A với nội dung
ô nhớ có đòa chỉ chứa trong cặp thanh ghi HL.
XRI data EXOR giữa nội dung thanh ghi A với dữ liệu.
INR reg Tăng nội dung thanh ghi reg.
INR M Tăng nội dung ô nhớ có đòa chỉ chứa trong cặp
thanh ghi HL.
DCR reg Giảm nội dung thanh ghi reg.
DCR M Giảm nội dung ô nhớ có đòa chỉ chứa trong
cặp thanh ghi HL.
INX r
p
Tăng nội dung cặp thanh ghi r
p
.
DCX r
p
Giảm nội dung cặp thanh ghi r
- JZ Z = 1
- JNC Cy = 0
- JC Cy = 1
- JPO P = 0
- JPE P = 1
- JP S = 0
- JM S = 1
CALLaddr Gọi chương trình con tại đòa chỉ addr.
C
condition
addr Gọi chương trình con tại đòa chỉ addr
nếu thỏa điều kiện:
- CNZ Z = 0
- CZ Z = 1
- CNC Cy = 0
- CC Cy = 1
- CPO P = 0
- CPE P = 1
- CP S = 0
- CM S = 1
RET Trở về từ chương trình con không điều kiện.
R
condition
Trở về từ chương trình con nếu thỏa điều
kiện:
- RNZ Z = 0
- RZ Z = 1
- RNC Cy = 0
- RC Cy = 1
- RPO P = 0
EI Cho phép yêu cầu ngắt.
DI Không cho phép yêu cầu ngắt.
8. Nhóm lệnh đặc biệt:
SIM Lệnh này sử dụng các bit trong thanh ghi A để
thực hiện các công việc sau:
SO
D
SO
E
x R
7.5
MS
E
M
7.5
M
6.5
M
5.5
M 7.5 - M 6.5 - M5.5 = [0]: Cho phép yêu cầu ngắt.
= [1]: Ngăn yêu cầu ngắt.
MSE = [0]: Các bit từ 0 đến 2 của thanh ghi A
có tác dụng.
= [1]: Các bit từ 0 đến 2 của thanh ghi A
không tác dụng.
RST 7.5 = [0]: Không ảnh hưởng.
= [1]: Reset Flip Flop RST 7.5
SOE = [0]: Bit thứ 7 của thanh ghi A không
gửi ra ngõ SOD.
= [1]: Bit thứ 7 của thanh ghi A được gửi