Tải bản đầy đủ (.pdf) (11 trang)

Tài liệu đồ án vi mạch hệ vi xử lý 8085A, chương 5 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (75.22 KB, 11 trang )

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ẻ)


P = 1 Khi kết quả là số chẵn.
P = 0 Khi kết quả là số lẻ.
Số chẵn là số có tổng số bit [1] là chẵn, và ngược lại số lẻ là
số có tổng số bit [1] là lẻ.
Cy - Carry (bit số nhớ)
Cy = 1 Khi kết quả có số nhớ.
Cy = 0 Khi kết quả không số nhớ.
Các thanh ghi công dụng chung: Gồm 6 thanh ghi có độ
dài 8 bit được ký hiệu lần lượt là B, C, D, E, H và L. Các thanh
ghi này có thể kết hợp thành từng cặp 16 bit: BC, DE, HL và
AF, trong đó A, B, D và H là các thanh ghi cao và F, C, E và L
là các thanh ghi thấp.
II. TẬP LỆNH 8085A:
Tập lệnh của 8085A được chia thành các nhóm như sau:
- Nhóm lệnh truyền dữ liệu
- Nhóm lệnh số học - logic
- Nhóm lệnh so sánh
- Nhóm lệnh nhảy
- Nhóm lệnh về ngăn xếp
- Nhóm lệnh về xuất nhập
- Nhóm lệnh điều khiển
1. Nhóm lệnh truyền dữ liệu:
MOV ds, sr Truyền dữ liệu từ thanh ghi sr đến thanh ghi
ds.
MOV ds, M Truyền dữ liệu từ ô nhớ có đòa chỉ chứa trong
cặp thanh ghi HL vào thanh ghi ds.
MOV M, sr Truyền dữ liệu từ thanh ghi sr vào ô nhớ có
đòa chỉ chứa trong cặp thanh ghi HL.
MVI ds, data Truyền tức thời dữ liệu 8 bit vào thanh ghi
ds.

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.

XCHG Hoán chuyển nội dung giữa cặp thanh ghi
HL với cặp thanh ghi DE.
2. Nhóm lệnh số học - logic:
ADD sr Cộng không lưu ý số nhớ nội dung thanh ghi A
với nội dung thanh ghi sr.
ADD M Cộng không lưu ý số nhớ nội dung thanh ghi A
với nội dung ô nhớ có đòa chỉ chứa trong cặp
thanh ghi HL.
ADI data Cộng không lưu ý số nhớ nội dung thanh ghi A
với dữ liệu.
ADC sr Cộng có lưu ý số nhớ nội dung thanh ghi A với
nội dung thanh ghi sr.
ADC M Cộng có lưu ý số nhớ nội dung thanh ghi A với
nội dung ô nhớ có đòa chỉ chứa trong cặp thanh
ghi HL.
ACI data Cộng có lưu ý số nhớ nội dung thanh ghi A với
dữ liệu.
SUB sr Trừ không lưu ý số thiếu nội dung thanh ghi A
với nội dung thanh ghi sr.
SUB M Trừ không lưu ý số thiếu nội dung thanh ghi A
với nội dung ô nhớ có đòa chỉ chứa trong cặp
thanh ghi HL.
SUI data Trừ không lưu ý số thiếu nội dung thanh ghi A
với dữ liệu.
SBB sr Trừ có lưu ý số thiếu nội dung thanh ghi A với
nội dung thanh ghi sr.
SBB M Trừ có lưu ý số thiếu nội dung thanh ghi A với
nội dung ô nhớ có đòa chỉ chứa trong cặp thanh
ghi HL.
SBI data Trừ có lưu ý số thiếu nội dung thanh ghi A với

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

p
.
RRC Đẩy nội dung thanh ghi A về phía phải.
RLC Đẩy nội dung thanh ghi A về phía trái.
RAR Đẩy nội dung thanh ghi A về phía phải ngang
qua cy.
RAL Đẩy nội dung thanh ghi A về phía trái ngang
qua cy.
DAD r
p
Cộng nội dung cặp thanh ghi HL với nội dung
cặp thanh ghi r
p
.
DAA Điều chỉnh nội dung bộ tích lũy A.
CMA Nghòch đảo nội dung bộ tích lũy A.
STC Đặt bit cy là [1].
CMC Nghòch đảo bit cy.
3. Nhóm lệnh so sánh:
CMP sr So sánh nội dung thanh ghi A với nội dung
thanh ghi sr.
CMP M So sánh nội dung thanh ghi A với nội dung ô
nhớ có đòa chỉ chứa trong cặp thanh ghi HL.
CPI data So sánh nội dung thanh ghi A với dữ liệu.
4. Nhóm lệnh nhảy:
JMP addr Nhảy đến đòa chỉ addr không điều kiện.
J
condition
addr Nhảy đến đòa chỉ addr nếu thỏa điều kiện:
- JNZ Z = 0

- 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

- RPE P = 1
- RP S = 0
- RM S = 1
RST c Gọi chương trình phục vụ ngắt số hiệu c.
PCHL Nạp bộ đếm chương trình PC từ cặp thanh ghi
HL.
5. Nhóm lệnh về ngăn xếp:
PUSHr
p
Chuyển dữ liệu của cặp thanh ghi r
p
vào ngăn
xếp.
POP r
p
Lấy dữ liệu từ ngăn xếp chuyển vào cặp thanh
ghi r
p
.
XTHL Hoán chuyển dữ liệu giữa ngăn xếp với
cặp thanh ghi HL.
SPHL Chuyển nội dung cặp thanh ghi HL vào thanh
ghi SP.
6. Nhóm lệnh xuất nhập:
IN port Nhập dữ liệu từ cổng port vào thanh ghi A.
OUT port Xuất dữ liệu từ thanh ghi A ra cổng port.
7. Nhóm lệnh điều khiển:
NOP Lệnh trống.
HLT Lệnh dừng chương trình cho đến khi có lệnh
ngắt hoặc RESET.

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

ra ngõ SOD.
SOD : Chứa dữ liệu cần gửi đến ngõ ra
nối tiếp SOD.
RIM Kết quả của lệnh RIM sau khi thực hiện được
trả lại trong thanh ghi A cho biết các trạng
thái sau:
SI
D
I
7.5
I
6.5
I 6.5 IE M
7.5
M
6.5
M
5.5
M 7.5 - M 6.5 - M 5.5 = [0]: Yêu cầu ngắt bò ngăn.
= [1]: Yêu cầu ngắt được phép.
IE = [0]: Vi xử lý không chấp nhận yêu cầu
ngắt.
= [1]: Vi xử lý chấp nhận yêu cầu ngắt.
I 7.5 -I 6.5 - I 5.5= [0]: Cho biết không có yêu cầu ngắt.
= [1]: Cho biết yêu cầu ngắt đang chờ.
SID : Chứa dữ liệu của ngõ vào nối tiếp
SID.

×