Bài giảng Kiến trúc máy tính - Chương 3: Tập lệnh máy tính - Hoàng Xuân Dậu

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG  
BÀI GIẢNG MÔN  
KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
Giảng viên:  
TS. Hoàng Xuân Dậu  
Điện thoại/E-mail:  
Bộ môn:  
Khoa học máy tính - Khoa CNTT1  
Học kỳ/Năm biên soạn: Học kỳ 2 năm học 2009-2010  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
NỘI DUNG  
1. Giới thiệu về tập lệnh máy tính  
2. Dạng và các thành phần của lệnh  
3. Địa chỉ / toán hạng của lệnh  
4. Các chế độ địa chỉ  
5. Các dạng lệnh thông dụng  
6. Câu hỏi ôn tập  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 2  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.1 Giới thiệu về tập lệnh máy tính  
Lệnh máy tính (computer instruction):  
. Là một từ nhị phân (binary word);  
. Mỗi lệnh được gán một nhiệm vụ cụ thể;  
. Lệnh được lưu trữ trong bộ nhớ  
. Lệnh được đọc (fetch) từ bộ nhớ vào CPU để giải mã và thực  
hiện.  
Tập lệnh gồm nhiều lệnh có thể được chia thành một số  
nhóm theo chức năng:  
. Chuyển dữ liệu (data movement)  
. Tính toán (computational)  
. Điều kiện & rẽ nhánh (conditonal and branching)  
. Các lệnh khác…  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 3  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.1 Giới thiệu về tập lệnh máy tính  
Việc thực hiện lệnh có thể được chia thành các pha (phase)  
hay giai đoạn (stage). Mỗi lệnh có thể được thực hiện theo 4  
giai đoạn:  
. Đọc lệnh (Instruction fetch - IF): lệnh được đọc từ bộ nhớ về  
CPU;  
. Giải mã (Instruction decode - ID): CPU giải mã lệnh;  
. Thực hiện (Instruction execution – EX): CPU thực hiện lệnh;  
. Lưu kết quả (Write back - WB): kết quả thực hiện lệnh (nếu có)  
được lưu vào bộ nhớ.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 4  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.1 Giới thiệu về tập lệnh máy tính  
Chu kỳ thực hiện lệnh (Instruction execution cycle): là  
khoảng thời gian mã CPU thực hiện xong một lệnh:  
. Một chu kỳ thực hiện lệnh có thể gồm một số giai đoạn thực  
hiện lệnh;  
. Một giai đoạn thực hiện lệnh có thể gồm một số chu kỳ máy;  
. Một chu kỳ máy có thể gồm một số chu kỳ đồng hồ.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 5  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.1 Giới thiệu về tập lệnh máy tính  
Chu kỳ thực hiện lệnh có thể gồm các thành phần sau:  
. Chu kỳ đọc lệnh  
. Chu kỳ đọc bộ nhớ (dữ liệu)  
. Chu kỳ ghi bộ nhớ (dữ liệu)  
. Chu kỳ đọc thiết bị ngoại vi  
. Chu kỳ ghi thiết bị ngoại vi  
. Chu kỳ bus rỗi.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 6  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.2 Dạng và các thành phần của lệnh  
Dạng tổng quát của lệnh gồm 2 thành phần chính:  
. Mã lệnh (Opcode - operation code): mỗi lệnh có mã lệnh riêng  
. Địa chỉ của các toán hạng (Addresses of Operands): mỗi lệnh  
có thể gồm một hoặc nhiều toán hạng. Có thể có các dạng địa  
chỉ toán hạng sau:  
3 địa chỉ  
2 địa chỉ  
1 địa chỉ  
1,5 địa chỉ  
Opcode  
Opcode  
Addresses of Operands  
0 địa chỉ  
Source addr. Destination addr.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 7  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.3 Địa chỉ / toán hạng của lệnh  
Toán hạng 3 địa chỉ:  
. Dạng:  
opcode addr1, addr2, addr3  
Mỗi địa chỉ addr1, addr2, addr3 tham chiếu đến một ô nhớ hoặc một  
thanh ghi.  
. Ví dụ:  
ADD R1, R2, R3; R1 + R2 R3  
R1 cộng với R2, kết quả gán vào R3.  
Ri là thanh ghi của CPU.  
ADD A, B, C; M[A]+M[B] M[C]  
A, B, C là các ô nhớ.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 8  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.3 Địa chỉ / toán hạng của lệnh  
Toán hạng 2 địa chỉ:  
. Dạng:  
opcode addr1, addr2  
Mỗi địa chỉ addr1, addr2 tham chiếu đến một ô nhớ hoặc một thanh ghi.  
. Ví dụ:  
ADD R1, R2; R1 + R2 R2  
R1 cộng với R2, kết quả gán vào R2.  
Ri là thanh ghi của CPU.  
ADD A, B; M[A]+M[B] M[B]  
A, B là các ô nhớ.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 9  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.3 Địa chỉ / toán hạng của lệnh  
Toán hạng 1 địa chỉ:  
. Dạng:  
opcode addr1  
Địa chỉ addr1 tham chiếu đến một ô nhớ hoặc một thanh ghi.  
Ở dạng 1 địa chỉ, thanh ghi Racc (Accumulator) được sử dụng như địa chỉ  
addr2 trong dạng 2 địa chỉ.  
. Ví dụ:  
ADD R1; R1 + Racc Racc  
R1 cộng với Racc, kết quả gán vào Racc.  
R1 là thanh ghi của CPU.  
ADD A; M[A]+ Racc Racc  
A là một ô nhớ.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 10  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.3 Địa chỉ / toán hạng của lệnh  
Toán hạng 1,5 địa chỉ:  
. Dạng:  
opcode addr1, addr2  
Một địa chỉ tham chiếu đến một ô nhớ và địa chỉ còn lại tham chiếu đến  
một thanh ghi.  
Dạng 1,5 địa chỉ là dạng hỗn hợp giữa ô nhớ và thanh ghi.  
. Ví dụ:  
ADD A, R1; M[A] + R1 R1  
Nội dung ô nhớ A cộng với R1, kết quả gán vào R1.  
R1 là thanh ghi của CPU và A là một ô nhớ.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 11  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.3 Địa chỉ / toán hạng của lệnh  
Toán hạng 0 địa chỉ: được sử dụng trong các lệnh thao tác  
với ngăn xếp: PUSH và POP  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 12  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4 Các chế độ địa chỉ  
Chế độ địa chỉ (Addressing modes) là phương thức CPU tổ  
chức các toán hạng của lệnh.  
. Chế độ địa chỉ cho phép CPU kiểm tra dạng và tìm các toán  
hạng của lệnh.  
Các chế độ địa chỉ:  
. Tức thì (Immediate)  
. Trực tiếp (Direct )  
. Gián tiếp qua thanh ghi (Register indirect )  
. Gián tiếp qua ô nhớ (Memory indirect )  
. Chỉ số (Indexed )  
. Tương đối (Relative )  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 13  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4.1 Các chế độ địa chỉ - Tức thì  
Giá trị hằng của toán hạng nguồn (source operand) nằm  
ngay sau mã lệnh;  
Toán hạng đích có thể là 1 thanh ghi hoặc 1 địa chỉ ô nhớ;  
Ví dụ:  
LOAD #1000, R1; 1000 R1  
Nạp giá trị 1000 vào thanh ghi R1.  
LOAD #500, B; 500 M[B]  
Nạp giá trị 500 vào ô nhớ B.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 14  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4.2 Các chế độ địa chỉ - Trực tiếp/tuyệt đối  
Sử dụng một hằng để biểu diễn địa chỉ một ô nhớ làm một  
toán hạng;  
Toán hạng còn lại có thể là 1 thanh ghi hoặc 1 địa chỉ ô nhớ;  
Ví dụ:  
LOAD 1000, R1; M[1000] R1  
Nạp nội dung ô nhớ có địa chỉ 1000 vào thanh ghi R1.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 15  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4.2 Các chế độ địa chỉ - Trực tiếp/tuyệt đối  
LOAD  
1000, R1  
200  
200 R1  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 16  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4.3 Các chế độ địa chỉ - Gián tiếp  
Trong chế độ địa chỉ gián tiếp, một thanh ghi hoặc một ô nhớ  
được sử dụng để lưu địa chỉ toán hạng.  
. Gián tiếp qua thanh ghi:  
LOAD (Ri), Rj; M[Ri] Rj  
Nạp nội dung ô nhớ có địa chỉ lưu trong thanh ghi Ri vào thanh ghi Rj.  
. Gián tiếp qua ô nhớ:  
LOAD (1000), Ri; M[M[1000]] Ri  
Nạp nội dung ô nhớ có địa chỉ lưu trong ô nhớ 1000 vào thanh ghi Ri.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 17  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4.3 Các chế độ địa chỉ - Gián tiếp  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 18  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4.4 Các chế độ địa chỉ - Chỉ số  
Địa chỉ của 1 toán hạng được tạo thành bởi phép cộng giữa  
1 hằng và thanh ghi chỉ số (index register);  
Ví dụ:  
LOAD X(Rind), Ri; M[X+Rind] Ri  
X là hằng và Rind là thanh ghi chỉ số.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 19  
BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH  
CHƯƠNG 3 – TẬP LỆNH MÁY TÍNH  
3.4.5 Các chế độ địa chỉ - Tương đối  
Địa chỉ của 1 toán hạng được tạo thành bởi phép cộng giữa  
1 hằng và bộ đếm chương trình PC (Program Counter);  
Ví dụ:  
LOAD X(PC), Ri; M[X+PC] Ri  
X là hằng và PC là bộ đếm chương trình.  
GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU  
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1  
Trang 20  
Tải về để xem bản đầy đủ
pdf 32 trang yennguyen 12/04/2022 6000
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 3: Tập lệnh máy tính - Hoàng Xuân Dậu", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_3_tap_lenh_may_tinh_hoan.pdf