Khái niệm lệnh, mã hoá lệnh và quá trình thực hiện lệnh

Một phần của tài liệu Bài giảng kỹ thuật vi xử lý (Trang 28 - 29)

3. TẬP LỆNH CỦA 8086

3.1Khái niệm lệnh, mã hoá lệnh và quá trình thực hiện lệnh

Lệnh của bộ vi xử lý được ghi bằng các ký tự dưới dạng gợi nhớ (memonic) để người sử dụng để nhận biết. Đối với bản thân bộ vi xử lý thì lệnh được mã hoá dưới dạng các số 0 và 1 (còn gọi là mã máy) vì đó là dạng biểu diễn thông tin duy nhất mà máy hiểu được. Do lệnh được cho dưới dạng mã nên sau khi nhận lệnh, bộ vi xử lý phải thực hiện việc giải mã lệnh rồi sau đó mới thực hiện lênh.

Một lệnh có thể có độ dài một vài byte tuỳ theo thiết kế bộ vi xử lý. Số lượng các bít n dùng để mã hóa vi lệnh (opcode) cho biết số lượng tối đa các lệnh (2n) có trong bộ vi xử lý. Với 1 byte bộ vi xử lý có thể mã hoá được tối đa 256 lệnh. Trong thực tế việc mã hoá lệnh cho bộ vi xử lý là rất phức tạp và bị chi phối bởi nhiều yếu tố khác nữa. Đối với bộ vi xử lý 8086 một lệnh có thể có độ dài từ 1 đến 6 byte. Ta sẽ chỉ lấy trường hợp lệnh MOV để giải thích cách ghi lệnh nói chung của 8086.

Lệnh MOV đích, gốc dùng để chuyển dữ liệu giữa thanh ghi và ô nhớ. Chỉ nguyên với các thanh ghi của 8086, nếu ta lần lượt đặt các thanh ghi vào các vị trí toán hạng đích và toán hạng gốc ta thấy đã phải cần tới rất nhiều mã lệnh khác nhau để mã hoá tổ hợp các này.

Hình vẽ trên biểu diễn dạng thức các byte dùng để mã hoá lệnh MOV. Như vậy để mã hoá lệnh MOV cần ít nhất là 2 byte, trong đó 6 bít của byte đầu dùng để chứa mã lệnh. Đối với các lệnh MOV. Bít W dùng để chỉ ra rằng 1 byte (W = 0) hoặc 1 từ (W = 1) sẽ được chuyển. Trong các thao tác chuyển dữ liệu, một toán hạng luôn bắt buộc phải là thanh ghi. Bộ vi xử lý dùng 2 hoặc 3 bít để mã hoá các thanh ghi trong CPU như sau:

CHƯƠNG 2. BÔ XỬ LÍ INTEL 8086/8088

Bít D dùng để chỉ hướng đi của dữ liệu. D = 1 thì dữ liệu đi đến thanh ghi cho bởi bít của REG. 2 bít MOD (chế độ) cùng với 3 bít R/M (thanh ghi/bộ nhớ) tạo ra 5 bít dùng để chỉ ra chế độ địa chỉ cho các toán hạng của lệnh.

Bảng dưới đây cho ta thấy cách mã hoá các chế độ địa chỉ (cách tìm ra các toán hạng bằng các bít này).

Ghi chú:

 addr8, addr16 tương ứng với địa chỉ 8 và 16 bít

 Các giá trị cho trong các cột 2, 3, 4 (ứng với MOD =00, 01, 10) là các địa chỉ hiệu dụng (EA) sẽ được cộng với DS để tạo ra địa chỉ vật lý (riêng BP phải được cộng với SP)

Một phần của tài liệu Bài giảng kỹ thuật vi xử lý (Trang 28 - 29)