Tài liệu Giao tiếp giữa KIT vi xử lý 8086 và máy tính Nguồn, chương 4 pdf

6 469 3
Tài liệu Giao tiếp giữa KIT vi xử lý 8086 và máy tính Nguồn, chương 4 pdf

Đang tải... (xem toàn văn)

Thông tin tài liệu

CHƯƠNG 4 KHẢO SÁT TỔNG QUÁT TẬP LỆNH CỦA VI XỬ LÝ 8086 I. CÁCH MÃ HOÁ LỆNH CỦA 8086 Vi xử lý 8086 có nhiều phương pháp đònh đòa chỉ và cũng có nhiều khả năng kết hợp các phương pháp đó lại với nhau. Tuy nhiên, một lệnh chỉ cần 6 byte để mã hóa, và byte bắt đầu là mã công tác (Operations code), byte tiếp theo chứa kiểu đòa chỉ và tiếp theo đó có thể là một hoặc hai byte dùng để chứa đòa chỉ. Các byte cuối cùng gồm một hoặc hai chứa toán hạng 8 hoặc 16 bit. Thực tế để biểu diển dạng thức các byte dùng để mã hóa lệnh Mov. Ta ttấy rằng để mã hóa lệnh Mov ta phải cần ít nhất là hai byte, trong đó 6 bit của byte đầu dùng để chứa mã lệnh. Đối với lệnh Mov để chuyển dữ liệu kiểu: - Thanh ghi  thanh ghi - Bộ nhớ  thanh ghi Thì bit đầu (opcode) này luôn là ‘100010’ (đối với thanh ghi đoạn thì khác). Đối với bit ‘D’ dùng để chỉ hướng đi của dữ liệu. D = 0 thì dữ liệu đi từ thanh ghi cho bởi 3 bit của REG. D = 1 dữ liệu đi đến thanh ghi cho bởi 3 bit REG. Đối với bit W dùng để chỉ rằng một byte (W = 0) hoặc một từ (W = 1) sẽ được chuyển. Byte1 Byte 2 Byte 3 Byte 4 Opcod e R EG M /R Disp: displacement (dòch chuyển ) Trừ thanh ghi đoạn D W Mod Disp L Disp H Đòa chỉ trực tiếp phần thấp Đòa chỉ trực tiếp phần cao hoặc II. KHẢO SÁT TỔNG QUÁT TẬP LỆNH CUẢ VXL 8086. Tập lệnh của 8086 gồm 9 nhóm lệnh: - Nhóm lệnh truyền số liệu. - Nhóm lệnh số học. - Nhóm lệnh thao tác chuỗi. - Nhóm lệnh logic. - Nhóm lệnh xử lý bit. - Nhóm lệnh điều khiển chương trình. - Nhóm lệnh ngôn ngữ bậc cao. - Nhóm lệnh ở chế độ bảo vệ. - Nhóm lệnh điều khiển các bộ vi xử lý. Qua những nhóm lệnh giới thiệu trên nhóm thực hiện đề tài chỉ khảo sát những nhóm lệnh thông dụng nhằm phục vụ cho việc lập trình bằng ngôn ngữ máy. 2.1). Nhóm lệnh truyền số liệu: Các lệnh truyền dữ liệu sẽ sao chép dữ liệu giữa thanh ghi với thanh ghi, với bộ nhớ hoặc với khối vào-ra. Chúng có thể sử dụng nhiều cách đònh đòa chỉ khác nhau. Trong cách viết lệnh dưới dạng gợi nhớ: toán hạng đầu tiên là thanh ghi đích hoặc đòa chỉ đích và tiếp sau dấu phẩy là thanh ghi nguồn hoặc đòa chỉ nguồn. Khác với 8085, trong 8086 tất cả các lệnh truyền dữ liệu đều dùng lệnh “Mov” Truyền từ thanh ghi vào thanh ghi: Mov (Reg1), (Reg2) Nội dung (Reg2) được sao chép vào (Reg1). Thí dụ: Mov AL, BL Sao chép nội dung BL vào thanh ghi AL. Truyền từ thanh ghi vào bộ nhớ: Mov (Mem), (Reg) Đối với lệnh byte, nội dung của thanh ghi được đưa vào đòa chỉ của ô nhớ. Đối với lệnh word thì nội dung của thanh ghi được đưa vào hai ô nhớ có đòa chỉ lần lược là (Mem) và (Mem + 1). Thí dụ: Mov [1200], BL Sao chép nội dung của thanh ghi BL vào ô nhớ có đòa chỉ tương đối là 1200. Truyền từ ô nhớ vào thanh ghi: Mov (Reg), (Mem) Đối với lệnh byte, nội dung ô nhớ được chép vào thanh ghi. Đối với lệnh word, nội dung của 2 ô nhớ (Mem) và (Mem + 1) được chép vào thanh ghi. Thí dụ: Mov BL, [1500] Sao chép nội dung ô nhớ tại đòa chỉ 1500 vào thanh ghi BL. Mov BX, [1500] Sao chép nội dung hai ô nhớ tại đòa chỉ 1500 và 1501 vào thanh ghi BX (ô 1500 vào BL và ô 1501 vào BH) Chú ý: nếu sử dụng AL hoặc AX trong các lệnh truyền từ thanh ghi vào ô nhớ và ngược lại sẽ nhận được mã công tác ngắn hơn khi sử dụng các thanh ghi khác. Truyền tức thời vào thanh ghi: Mov (Reg), (Data) Trong lệnh này, dữ liệu được truyền tức thời vào thanh ghi. Thí dụ: Mov BL, 20 Giá trò 20 được đưa vào thanh ghi BL. Truyền tức thời vào bộ nhớ: Mov (Mem), (Data) Trong lệnh byte dữ liệu được truyền tức thời vào ô nhớ có đòa chỉ (Mem). Trong lệnh word dữ liệu được truyền tức thời vào 2 ô nhớ có đòa chỉ (Mem) và (Mem + 1). Thí dụ: Mov [1200], 50 Giá trò 50 được đưa vào ô nhớ có đòa chỉ 1200. Mov Word PTR [1200], 50 Giá trò Word 0050 được đưa vào 2 ô nhớ bắt dầu tại đòa chỉ 1200:50 (LSB) vào đòa chỉ 1200:00 (MSB) vào đòa chỉ 1201 - Truy xuất trực tiếp cổng: IN (Reg), (Port) Đọc nội dung của cổng vào thanh ghi. thanh ghi sử dụng l2 AL (dạng byte) và AX (dạng Word), đòa chỉ cổng là một số 8 bit. OUT (Reg), (Port) Xuất nội dung của thanh ghi ra cổng. - Truy xuất gián tiếp cổng: IN (Reg), DX Đọc nội dung của cổng có đòa chỉ chứa trong DX vào thanh ghi. Thanh ghi sử dụng là AL hoặc AX, đòa chỉ cổng là số 16 bit. OUT DX, (Reg) Gởi nội dung thanh ghi ra cổng có đòa chỉ chứa trong DX 2.2). Nhóm lệnh số học: Bao gồm các phép tính cơ bản (cộng, trừ, nhân và chia) và phép so sánh, toán hạng có thể là dữ liệu 8 bit hoặc 16 bit, kết quả có thể là 8 bit, 16 bit hoặc 32 bit. Các toán hạng được chứa trong thanh ghi bộ nhớ tức thời. Tùy theo thao tác, kết quả có thể được chứa trong 1 hoặc 2 thanh ghi trong bộ nhớ.  Phép cộng: Vi xử lý 8086 thực hiện phép cộng có lưu ý số nhớ hoặc không lưu ý số nhớ 8 bit hoặc 16 bit. + Số hạng đầu tiên được chứa trong các thanh ghi dữ liệu (AX, BX, CX, DX, AH, AL, BH …), trog một thanh ghi chỉ số hoặc một ô nhớ. Số hạng thứ hai có thể là tức thời trong thanh ghi hoặc trong bộ nhớ. Hai số hạng không thể cùng ở trong bộ nhớ, kết quả phép cộng được chứa trong toán hạng thứ nhất. Sau đây là bảng liệt kê lệnh cộng dưới dạng gợi nhớ: Cộng không lưu ý số nhớ Cộng có lưu ý số nhớ Thí dụ ADD (accu), (data) ADD (mem), (data) ADD (reg), (data) ADD (reg1), (reg2) ADD (reg), (mem) ADD (mem), (reg) ADC (accu), (data) ADC (mem), (data) ADC (reg), (data) ADC (reg1), (reg2) ADC (reg), (mem) ADC (mem), (reg) ADD AX, 1250 ADD Byte PTR [0900],50 ADD BL, 50 ADC AL, AH ADD CX, [0800] ADC [0600], DL  Phép trừ: 8086 có thể thực hiện phép trừ với 8 bit hoặc 16 bit, lệnh SBB có lưu ý số thiếu và lệnh SUB không lưu ý số thiếu. Sau đây là bảng liệt kê lệnh trừ dưới dạng gợi nhớ: Trừ có số thiếu Trừ không có số thiếu Thí dụ SUB (accu), (data) SUB (mem), (data) SUB (reg), (data) SUB (reg1), (reg2) SUB (reg), (mem) SUB (mem), (reg) SBB (accu), (data) SBB (mem), (data) SBB (reg), (data) SBB (reg1), (reg2) SBB (reg), (mem) SBB (mem), (reg) SUB AX, 1230 SBB Byte PTR [5000], 90 SUB BL, 50 SBB AL, DL SUB CX, [1230] SBB [0300], DL . CHƯƠNG 4 KHẢO SÁT TỔNG QUÁT TẬP LỆNH CỦA VI XỬ LÝ 8086 I. CÁCH MÃ HOÁ LỆNH CỦA 8086 Vi xử lý 8086 có nhiều phương pháp đònh. đề tài chỉ khảo sát những nhóm lệnh thông dụng nhằm phục vụ cho vi c lập trình bằng ngôn ngữ máy. 2.1). Nhóm lệnh truyền số liệu: Các lệnh truyền dữ liệu

Ngày đăng: 24/12/2013, 13:17

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan