Tĩm tắt tập lệnh :

Một phần của tài liệu NGHIÊN CỨU VÀ THIẾT KẾ BỘ KHỞI ĐỘNG MỀM CHO ĐỘNG CƠ KHÔNG ĐỒNG BỘ 3 PHA (Trang 34 - 39)

Trong phần này giới thiệu cách đặt lệnh của 8951 thơng qua sự kiểm tra các chế độ và những ví dụ tình huống lập trình liên quan. Cách đặt lệnh này chỉ tối ưu với

Opcode

Opcode

Opcode Dữ liệu trực tiếp

Opcode Độ lệch tương đối

Địa chỉ trực tiếp

Địa chỉ tức thời

những ứng dụng điều khiển 8 bit. Trong 8951 cĩ tất cả 256 lệnh được thực thi và 1 lệnh khơng định nghĩa. Một lệnh cĩ hoặc 2 byte dữ liệu hoặc địa chỉ được thêm vào. Nĩi chung 8951 cĩ 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte.

Định địa chỉ thanh ghi :

8951 cĩ 8 thanh ghi được đánh số từ R0 đến R7 mà ta truy suất được với nĩ.

Ví dụ:ADD A, R5

Định địa chỉ trực tiếp :

8951 cĩ thể truy suất bất kỳ nào trong RAM nội.

Vídụ :MOV A,5BH

Định địa chỉ gián tiếp :

Ví dụ :MOV A,@R1

Định địa chỉ tức thời :

Ví dụ :MOV A,#12 MOV DPTR,#2000H

Định địa chỉ tương đối :

Sử dụng trong lệnh nhảy khơng hay cĩ điều kiện Opcode

Nội dung PC = PC hiện hành + offset bù 2 cĩ dấu Ví dụ: SJMP 20H

Định vị địa chỉ tuyệt đối :

Thường sử dụng cho lệnh ACALL, AJMP. Những lệnh 2 bytes này cho phép rẽ nhánh trong trang 2K bytes của bộ nhớ mã bởi sự cung cấp 11 bit thấp của địa chỉ đích trong opcode (A104A8) và byte 2 của lệnh (A74A0).

Định vị địa chỉ :

Địa chỉ dài chỉ dùng chỉ dùng với những lệnh LCALL, LJMP. Những lệnh 3 byte này gồm địa chỉ đích 16 bit và mã lệnh 8 bit.

Định vị địa chỉ chỉ số :

Định vị địa chỉ chỉ số sử dụng một thanh ghi nền (hoặc bộ đếm chương trình hoặc con trỏ dữ liệu) và độ lệch (bộ tích lũy) trong việc hình thành địa chỉ hiệu dụng cho lệnh JMP hoặc MOVC.

+ =

Ví dụ : MOVC A,@A+<Thanh ghi cơ bản>\

TẬP LỆNH :

8951 cĩ 255 lệnh chia là 5 nhĩm. Thời gian thực thi của các lệnh khơng giống nhau, cĩ thể là 1, 2, 3 hay 4 chu kỳ máy. Nếu 8951 hoạt động ở 12MHz thì mỗi chu kỳ lệnh sẽ là 1µs.

Trang 36

Opcode ADDR 740

ADDR 1048

Độ lệch

PC (hoặc DPTR) ACC Địa chỉ hiệu dụng

Thanh ghi cơ bản

Những lệnh về số học :

Ví dụ : Lệnh ADD A,<byte> được viết với nhiều cách khác nhau ADD A,7FH (định địa chỉ trực tiếp)

ADD A,@R0 (định địa chỉ gián tiếp) ADD A,R7 (định địa chỉ thanh ghi) ADD A,#127 (định địa chỉ tức thời)

Thời gian thực thi của tất cả những lệnh số học là 1µs ngoại trừ lệnh INC DPTR là 2µs và các lệnh MUL AB và DIV AB là 4µs. Sau đây là bảng tĩm tắt các lệnh về số học :

Mnemonic Sự hoạt động Thời gian thực thi

ADD A,<byte> A = A + <byte> 1µs ADDC A,<byte> A = A + <byte> + C 1µs SUBB A,<byte> A = A - <byte> - C 1µs

INC A A = A + 1 1µs

INC <byte> <byte> = <byte> + 1 1µs

INC DPTR DPTR = DPTR + 1 2µs

DEC A A = A – 1 1µs

DEC <byte> <byte> = <byte>-1 1µs

MUL AB B_A = A*B 4µs

DIV AB A = Int[A/B] 4µs

B = Mod[A/B]

DAA Decimal Adjust 1µs

Nhĩm lệnh logic :

Là những lệnh biểu diễn phép tốn luận lý (AND, OR, XOR, NOT) trên byte dữ liệu hay trên bit.

Ví dụ : ANL A,#10000000B

ANL <byte>,A <byte> = <byte> and A 1µs ANL <byte>,#data <byte> = <byte> and #data 2µs ORL A, <byte> A = A or <byte> 1µs ORL <byte>,A <byte> = <byte> or A 1µs ORL <byte>,#data <byte> = <byte> or #data 2µs XRL A, <byte> A = A xor <byte> 1µs XRL <byte>,A <byte> = <byte> xor A 1µs XRL <byte>,#data <byte> = <byte> xor #data 2µs

CLR A A = 0, clear A 1µs

CPL A A = not A 1µs

RL A Quay ACC sang trái 1 bit 1µs

RLC A Quay ACC sang trái qua cờ C 1µs

RR A Quay ACC sang phải 1 bit 1µs

RRC A Quay ACC sang trái qua cờ C 1µs SWAP A Hốn chuyển giữa hai nipbles 1µs

Nhĩm lệnh truyền dữ liệu : a. Lệnh truyền dữ liệu RAM nội :

Là những lệnh chuyển dữ liệu trong khơng gian bộ nhớ nội thực thi trong 1 hoặc hai chu kỳ máy.

Lệnh MOV <des>,<src> cho phép truyền dữ liệu giữa bất kỳ RAM nội hoặc thanh ghi đặc biệt nào mà khơng qua ACC.

Mnemonic Sự hoạt động Thời gian thực thi

MOV A,<src> A = <src> 1µs MOV <des>,A <des> = A 1µs MOV <des>,<src> <des> = <src> 2µs MOV DPTR,#data16bit DPTR = #data16 bit 2µs PUSH <scr> cất <scr> vào stack 2µs POP <des> lấy <des> từ stack 2µs XCH A,<byte> dữ liệu ACC và <byte> 1µs

hốn đổi nhau

XCHD A,Ri 4 bit thấp của ACC và Ri 1µs hốn đổi nhau

Một phần của tài liệu NGHIÊN CỨU VÀ THIẾT KẾ BỘ KHỞI ĐỘNG MỀM CHO ĐỘNG CƠ KHÔNG ĐỒNG BỘ 3 PHA (Trang 34 - 39)

Tải bản đầy đủ (DOC)

(66 trang)
w