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

kết hợp máy tính với kit và vi xử lý, chương 8 potx

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 (63.34 KB, 7 trang )

1 1 0 0 1 1 0 1
8 bit thấp
8 bit cao
1 1 0 0 1 1 0 1
8 bit thấp
8 bit cao
Chương 8: NHÓM LỆNH GỌI
1. Lệnh gọi không điều kiện:
+ Cú pháp: CAAL ADDR
+ Mã đối tượng:
+ Ý nghóa: vi xử lý sẽ thực hiện chương trình tại đòa chỉ
ADDR sau đó sẽ trở về chương trình chính khi gặp lệnh trở
về.
+ Lệnh này chiếm 3 byte, số chu kỳ clock =18.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.
2. Lệnh gọi khi Z=0:
+ Cú pháp: CNZ ADDR
+ Mã đối tượng:
+ Ý nghóa: vi xử lý sẽ thực hiện chương trình tại ADDR khi
bit Z=0, ngay sau khi thực hiện lệnh ảnh hưởng đến bit Z
của thanh ghi trạng thái. Sau đó sẽ trở về chương trình chính
khi gặp lệnh trở về.
+ Lệnh này chiếm 3 byte, số chu kỳ clock =9/18.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.
( Tương tự cho các lệnh khác).
3. Lệnh gọi khi bit Z=1:
+ Cú pháp: CZ ADDR
4. Lệnh gọi khi bit C=0:
+ Cú pháp: CNC ADDR
5. Lệnh gọi khi bit C=1:
+ Cú pháp: CC ADDR


6. Lệnh gọi khi bit P=0:
+ Cú pháp: CPO ADDR
7. Lệnh gọi khi bit P=1:
+ Cú pháp: CPE ADDR
8. Lệnh gọi khi bit S=0:
+ Cú pháp: CP ADDR
9. Lệnh gọi khi bit S=1:
+ Cú pháp: CM ADDR
XVII. NHÓM LỆNH TRỞ VỀ TỪ CHƯƠNG TRÌNH CON:
1. Lệnh RET không điều kiện:
+ Cú pháp: RET
+ Mã đối tượng:
+ Ý nghóa: lệnh này sẻ kết thúc chương trình con, vi xử lý sẽ
trở lại chương trình chính tiếp tục phần chương trình còn lại.
+ Lệnh này chiếm 1 byte, số chu kỳ xung clock=10.
+ Thanh ghi trạng thái không đổi.
2. Lệnh trở về khi Z=0:
+ Cú pháp: RNZ
+ Mã đối tượng:
+
Ý nghóa: lệnh này sẽ kết thúc chương trình con khi bit Z=0,
vi xử lý sẽ trở lại chương trình chính tiếp tục phần chương
trình còn lại, nếu không thỏa điều kiên chương trình con sẽ
thực hiện các lệnh tiếp theo.
+ Lệnh này chiếm 1 byte, số chu kỳ clock=6/12.
1 1 0 0 1 0 0 1
1 1 0 0 0 0 0 0
+ Thanh ghi trạng thái không thay đổi.
( Tương tự cho các lệnh khác).
3. Lệnh trở về khi Z=1:

+ Cú pháp: RZ
4. Lệnh trở về khi C=0:
+ Cú pháp: RNC
5. Lệnh trở về khi C=1:
+ Cú pháp: RC
6. Lệnh trở về khi P=0:
+ Cú pháp: RPO
7. Lệnh trở về khi P=1:
+ Cú pháp: RPE
8. Lệnh trở về khi S=0:
+ Cú pháp: RP
9. Lệnh trở về khi S=1:
+ Cú pháp: RM
XVIII. NHÓM LỆNH DI CHUYỂN CẶP THANH GHI
1. Lệnh trao đổi nội dung 2 cặp thanh ghi:
+ Cú pháp : XCHG
+ Mã đối tượng:
+ Ý nghóa: nội dung cặp thanh ghi HL và DE được trao đổi
cho nhau. Thanh ghi H trao đổi với D thanh ghi L trao đổi
với E.
+ Lệnh này chiếm 1 byte, số chu kỳ xung clock = 4.
+ Thanh ghi trạng thái không thay đổi.
( Tương tự cho các lệnh khác ).
2. Lệnh trao đổi nội dung cặp thanh ghi với ô nhớ:
+ Cú pháp : XTHG
1 1 1 0 1 0 1 1
Bảng tra các thanh ghi:
Register ddd or sss
B 000
C 001

D 010
E 011
H 100
L 101
M 110
A 111
Bảng 2.1
3. Lệnh di chuyển nội dung cặp thanh ghi:
+ Cú pháp : SPHL
4. Lệnh nạp cặp thanh ghi PC :
+ Cú pháp : PCHL
XIX. NHÓM LỆNH XUẤT NHẬP
1. Lệnh nhập dữ liệu từ port:
+ Cú pháp:IN port-addr
+ Mã đối tượng:
+ Ý nghóa: nhập nội dung của có đòa chỉ port-addr vào
thanh ghi A. Đòa chỉ port-addr có độ dài 1 byte.
+ Lệnh này chiếm 2 byte, số chu kỳ xung clock = 10.
+ Thanh ghi trang thái không thay đổi.
(Tương tự cho các lệnh khác).
2. Lệnh xuất dữ liệu ra port:
+ Cú pháp: OUT port-addr
3. Lệnh cho phép ngắt:
+ Cú pháp: EI
4. Lệnh không cho phép ngắt:
+ Cú pháp: DI
5. Lệnh read interrupt mask:
+ Cú pháp: RIM
6. Lệnh set interrupt mask:
+ Cú pháp: SIM

XX. NHÓM LỆNH ĐẶC BIỆT:
1. Lệnh nghòch đảo nội dung thanh
ghi A:
1 1 0 1 1 0 1 1
port
-
addr
+ Cú pháp:CMA
2. Lệnh đặt bit carry:
+ Cú pháp:STC
3. Lệnh nghòch đảo bit carry:
+ Cú pháp:CMC
4. Lệnh điều chỉnh thập phân:
+ Cú pháp:DAA
5. Lệnh nop:
+ Cú pháp:NOP
6. Lệnh dừng:
+ Cú pháp:HLT

XXI. VÍ DỤ MINH HỌA TẬP LỆNH:
Chương trình nhấp nháy chuỗi "-HÀ-NỘI-" trên 8 led:
Org 7108h ;đòa chỉ bắt đầu nhập mã
chuổi
Db, 40h, 76h, 77h, 40h, 37h, 3fh, 30h, 40, ;khai
báo mã của chuỗi
Org 6200h
Vd1: lxi h, 7108h ;nạp đòa chỉ quản lý dữ liệu vào
thanh ghiHL
Mvi c, 08h ;làm biến đếm cho chương trình
hiển thò

Vd2: mov a, m ;lấy dữ liệu
Sta 0a000h ;gởi ra led hiển thò
Inr l ;tăng lên 1 để lấy byte tiếp theo
Dcr c ;giảm biến đếm
Jnz vd2 ;nhảy về vd2 khi chưa gởi đủ 8 byte
Mvi a, 01h ;nạp thời hằng delay1 giây
Call 0310h ;gọi chương trình con delay
Mvi c, 08h ;làm biến điếm cho chương
trình xóa
Mvi a, 00h ;nạp 00 vào A
Vd3 sta 0a000h ;gởi ra led để xóa
Dcr c ;giảm biến đếm
Jnz vd3 ;quay lại vd3 nếu chưa xóa đủ 8 led
Mvi 0, 01h ;nạp thời hằng delay
Call 0310h ;gọi chương trình delay
Jmp vd1 ;quay lại làm lại chu kỳ kế.

×