Lệnh gọi không điều kiện: + Cú pháp: CAAL ADDR + Ý 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 không ả
Trang 11 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
1 Lệnh gọi không điều kiện:
+ Cú pháp: CAAL ADDR
+ Ý 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
+ Ý 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
Trang 25 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
Trang 3+ 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
Trang 4Bả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
Trang 5+ 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
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
Trang 6Mvi 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
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ế