Bài giảng Kiến trúc máy tính - Chương 3: Tập lệnh - Phan Trung Kiên
Tóm tắt Bài giảng Kiến trúc máy tính - Chương 3: Tập lệnh - Phan Trung Kiên: ...ero (ZF - cờ rỗng): đựoc thiết lập lên một kết quả của phép toán vừa thực hiện bằng 0. Cờ Sign (SF - cờ đấu): được thiết lập lên một kết quả của phép toán vừa thực hiện nhỏ hơn 0, hay nói cách khác, cờ Sign nhận giá trị bằng bit dấu của kết quả. Cờ Carry (CF - cờ nhớ): cờ được thiết lập nế...nhiều từ lệnh dài để chứa loại này Ví dụ: SUB r1, r2, r3 (Motorola) Phan Trung Kiên 28 Số lượng toán hạng 2 toán hạng: Có một toán hạng vừa là nguồn, vừa là đích a = a + b Giảm độ dài của lệnh Có thể thêm thao tác: Dùng vùng nhớ tạm để chứa giá trị trước khi thực hiện Ví dụ...TEST I/O: chuyển thông tin trạng thái từ hệ thống vào/ra đến đích xác định 10 Phan Trung Kiên 37 Các lệnh điều khiển hệ thống HALT: dừng thực hiện chương trình WAIT: dừng thực hiện chương trình; liên tục kiểm tra điều kiện được chỉ định; chương trình được thực hiện khi điều kiện được ...
11 Chương 3. Tập Lệnh Phan Trung Kiên Đại học Tây Bắc Phan Trung Kiên 2 Chương 3. Kiến Trúc Tập Lệnh Tập thanh ghi Tập lệnh Ví dụ nghiên cứu Phan Trung Kiên 3 3.1. Tập thanh ghi Chức năng và đặc điểm: Chứa các thơng tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU Được coi là mức đầu tiên của hệ thống nhớ Số lượng thanh ghi nhiều Ỵ tăng hiệu năng của CPU Cĩ hai loại thanh ghi: Các thanh ghi lập trình được Các thanh ghi khơng lập trình được Phan Trung Kiên 4 Phân loại thanh ghi theo chức năng Thanh ghi địa chỉ: quản lý địa chỉ của ngăn nhớ hay cổng vào-ra. Thanh ghi dữ liệu: chứa tạm thời các dữ liệu. Thanh ghi đa năng: cĩ thể chứa địa chỉ hoặc dữ liệu. Thanh ghi điều khiển/trạng thái: chứa các thơng tin điều khiển và trạng thái của CPU. Thanh ghi lệnh: chứa lệnh đang được thực hiện. 2Phan Trung Kiên 5 Một số thanh ghi điển hình Các thanh ghi địa chỉ Các thanh ghi dữ liệu Thanh ghi trạng thái Phan Trung Kiên 6 Các thanh ghi địa chỉ: Chức năng: dùng để quản lý địa chỉ của ngăn nhớ hay cổng vào – ra Chương trình đang thực hiện phải nằm trong bộ nhớ chính và nĩ chiếm 3 vùng nhớ cỏ bản sau: Vùng nhớ lệnh (Code): chứa các lệnh của chương trình. Vùng dữ liệu (Data): chứa dữ liệu của chương trình. Thực chất đây là nơi cấp phát các ngăn nhớ cho các biến nhớ. Vùng ngăn xếp (Stack): là vùng nhớ cĩ cấu trúc LIFO (Last in first Out) dùng để cất dữ thơng tin và sau đĩ cĩ thể khơi phục lại. Thường dùng cho việc thực hiện các chương trình con. Phan Trung Kiên 7 Bộ đếm chương trình (Program Counter – PC): Cịn gọi là con trỏ lệnh (Instruction Pointer – IP) Là thanh ghi chứa địa chỉ cảu một lệnh tiếp theo sẽ được nhận vào. Sau khi một lệnh được nhận vào thì nội dung của PC tự động tăng để trỏ sang lệnh kế tiếp nằm ngay sau lệnh vừa nhận. Phan Trung Kiên 8 Minh họa bộ đếm chương trình 3Phan Trung Kiên 9 Thanh ghi con trỏ dữ liệu (Data Pointer – DP): Chứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy nhập. Thường cĩ một số thanh ghi con trỏ dữ liệu Phan Trung Kiên 10 Minh hoạ thanh ghi con trỏ dữ liệu Phan Trung Kiên 11 Ngăn xếp (Stack) Ngăn xếp là vùng nhớ cĩ cấu trúc LIFO (Last In - First Out) Ngăn xếp thường dùng để phục vụ cho chương trình con Đáy ngăn xếp là một ngăn nhớ xác định Đỉnh ngăn xếp là thơng tin nằm ở vị trí trên cùng trong ngăn xếp Đỉnh ngăn xếp cĩ thể bị thay đổi Phan Trung Kiên 12 Thanh ghi con trỏ ngăn xếp (Stack Pointer – SP): Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp Khi cất một thơng tin vào ngăn xếp: Nội dung của SP tự động giảm Thơng tin được cất vào ngăn nhớ được trỏ bởi SP Khi lấy một thơng tin ra khỏi ngăn xếp: Thơng tin được đọc từ ngăn nhớ được trỏ bởi SP Nội dung của SP tự động tăng Khi ngăn xếp rỗng, SP trỏ vào đáy 4Phan Trung Kiên 13 Minh họa con trỏ ngăn xếp SP Phan Trung Kiên 14 Thanh ghi cơ sở (Base Register) và thanh ghi chỉ số (Index Register): Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa ngăn nhớ mà CPU cần truy nhập so với ngăn nhớ cơ sở. Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số Phan Trung Kiên 15 Minh họa thanh ghi cơ sở và thanh ghi chỉ số Phan Trung Kiên 16 Các thanh ghi dữ liệu: Chức năng: chứa các dữ liệu tạm thời hoặc các kết qủa trung gian phục vụ cho việc xử lý các dữ liệu của CPU. Các loại thanh ghi dữ liệu: Các thanh ghi số nguyên:8, 16, 32, 64 bit Các thanh ghi số dấu chấm động (Cĩ trên các bộ xử lý cĩ khối FPU – Floadting Point Unit) 5Phan Trung Kiên 17 Thanh ghi trạng thái: Cịn gọi là thanh ghi cờ (Flag Register) Chức năng: chứa các thơng tin trạng thái của CPU. Các cờ phép tốn: biểu thị trạng thái của kết qủa phép tốn. Các cờ điều khiển: biểu thị trạng thái điều khiển của CPU. Phan Trung Kiên 18 Các cờ phép tốn: Cờ Zero (ZF - cờ rỗng): đựoc thiết lập lên một kết quả của phép tốn vừa thực hiện bằng 0. Cờ Sign (SF - cờ đấu): được thiết lập lên một kết quả của phép tốn vừa thực hiện nhỏ hơn 0, hay nĩi cách khác, cờ Sign nhận giá trị bằng bit dấu của kết quả. Cờ Carry (CF - cờ nhớ): cờ được thiết lập nếu phép tốn cĩ nhớ ra ngồi bit cao nhất → cờ báo tràn với số khơng dấu. Cờ Overflow (OF - cờ tràn): cờ được thiết lập nếu cộng hai số cùng dấu mà kết quả cĩ dấu ngược lại → cờ báo tràn với số cĩ dấu. Phan Trung Kiên 19 Các cờ điều khiển: Cờ Interrupt (IF - cờ cho phép ngắt): Nếu IF = 1 → CPU ở trạng thái cho phép ngắt với tín hiệu yêu cầu ngắt từ bên ngồi. Nếu IF = 0 → CPU ở trạng thái cấm ngắt với tín hiệu yêu cầu ngắt từ bên ngồi. Phan Trung Kiên 20 Tập thanh ghi của một số bộ xử lý 6Phan Trung Kiên 21 3.2. Tập lệnh Giới thiệu chung Mỗi bộ xử lý cĩ một tập lệnh xác định Tập lệnh thường từ hàng chục đến hàng trăm lệnh Mỗi lệnh là một chuỗi số nhị phân mà BXL hiểu được để thực hiện một thao tác xác định Các lệnh được mơ tả bằng ký hiệu gợi nhớ ? đĩ là các lệnh hợp ngữ Phan Trung Kiên 22 Giản đồ trạng thái của chu kỳ lệnh Khơng kiểm tra ngắt Tính tốn địa chỉ lệnh Giải mã thao tác lệnh Tính tốn địa chỉ tốn hạng Xử lý dữ liệu Tính tốn địa chỉ tốn hạng Nhận lệnh Nhận tốnhạng Cất tốn hạng Nhiều tốn hạng Nhiều kết quả DL dạng xâu hoặc vectơ Kết thúc lênh, nhận lệnh tiếp theo Phan Trung Kiên 23 Giản đồ trạng thái của chu kỳ lệnh Cĩ kiểm tra ngắt Tính tốn địa chỉ lệnh Giải mã thao tác lệnh Tính tốn địa chỉ tốn hạng Xử lý dữ liệu Tính tốn địa chỉ tốn hạng Nhận lệnh Nhận tốnhạng Cất tốn hạng Nhiều tốn hạng Nhiều kết quả DL dạng xâu hoặc vectơ Kết thúc lênh, nhận lệnh tiếp theo Kiểm tra ngắt Ngắt Khơng cĩ ngắt Phan Trung Kiên 24 Cấu trúc lệnh mã máy Mã lệnh (opcode): cho biết thao tác cần thực hiện Các tốn hạng (Operands): cho biết: Nơi chứa dữ liệu cần tác động vào: t/h nguồn, t/h đích Cho biết địa chỉ của lệnh tiếp theo Mã lệnh Các tốn hạng 7Phan Trung Kiên 25 Các kiểu lệnh Xử lý dữ liệu Lưu trữ dữ liệu Di chuyển dữ liệu Điều khiển thứ tự thực hiện lệnh Phan Trung Kiên 26 Các kiểu tốn hạng Số lượng tốn hạng Kiểu số Số nguyên Số dấu phẩy động Kiểu ký tự Mã của ký tự ASCII, BCD mở rộng, ... Kiểu logic Tốn hạng xử lý với cờ Phan Trung Kiên 27 Số lượng tốn hạng 3 tốn hạng: Tốn hạng 1, tốn hạng 2, kết quả a = b + c Cĩ thể dẫn tới lệnh tiếp theo (thường là ngầm hiểu) Loại này khơng phổ dụng Cần rất nhiều từ lệnh dài để chứa loại này Ví dụ: SUB r1, r2, r3 (Motorola) Phan Trung Kiên 28 Số lượng tốn hạng 2 tốn hạng: Cĩ một tốn hạng vừa là nguồn, vừa là đích a = a + b Giảm độ dài của lệnh Cĩ thể thêm thao tác: Dùng vùng nhớ tạm để chứa giá trị trước khi thực hiện Ví dụ: ADD AX, BX 8Phan Trung Kiên 29 Số lượng tốn hạng 1 tốn hạng: Tốn hạng thường là một thanh ghi Tốn hạng thứ hai được ngầm hiểu Phổ dụng trong các máy xa xưa Ví dụ: PUSH AX Phan Trung Kiên 30 Số lượng tốn hạng 0 tốn hạng Điều khiển hệ thống ít dùng Ví dụ: NOP (No OPeration) Phan Trung Kiên 31 So sánh số lượng tốn hạng Nhiều tốn hạng: Các lệnh phức tạp hơn Cần nhiều thanh ghi hơn Chỉ cần ít lệnh trong một chương trình ít tốn hạng: Các lệnh ít phức tạp hơn Cần dùng nhiều lệnh trong một chương trình Nhận/xử lý các lệnh nhanh hơn Phan Trung Kiên 32 Các kiểu thao tác Các lệnh chuyển dữ liệu Các lệnh số học Các lệnh logic Các lệnh vào/ra Các lệnh điều khiển hệ thống Các lệnh chuyển điều khiển 9Phan Trung Kiên 33 Các lệnh chuyển dữ liệu Đặc điểm: Sao chép dữ liệu từ nguồn sang đích Khơng ảnh hưởng đến các cờ Các lệnh: MOVE: copy dữ liệu từ nguồn đến đích LOAD: copy dữ liệu từ bộ nhớ đến BXL STORE: copy dữ liệu từ BXL đến bộ nhớ EXCHANGE: trao đổi nội dung của nguồn và đích PUSH: copy dữ liệu từ nguồn đến stack POP: copy dữ liệu từ stack đến đích Phan Trung Kiên 34 Các lệnh số học Đặc điểm: Thực hiện các phép tốn số học Cĩ ảnh hưởng đến thanh ghi cờ Các lệnh: ADD: tính tổng hai tốn hạng SUBTRACT: tính hiệu hai tốn hạng MULTIPLY: tính tích hai tốn hạng DIVIDE: tích thương hai tốn hạng ABSOLUTE: lấy giá trị tuyệt đối của tốn hạng NEGATE: đổi dấu tốn hạng (lấy bù 2) INCREMENT: tăng tốn hạng lên 1 DECREMENT: giảm tốn hạng đi 1 Phan Trung Kiên 35 Các lệnh logic Đặc điểm: Thực hiện các phép tốn logic Cĩ ảnh hưởng đến thanh ghi cờ Các lệnh: AND: thực hiện AND bit hai tốn hạng OR: thực hiện OR bit hai tốn hạng XOR: thực hiện XOR bit hai tốn hạng NOT: đảo bit của tốn hạng (lấy bù 1) TEST: thực hiện AND hai tốn hạng để lập cờ SHIFT: thực hiện dịch bit tốn hạng ROTATE: thực hiện quay bit tốn hạng COMPARE: so sánh hai tốn hạng Phan Trung Kiên 36 Các lệnh vào ra Đặc điểm: Trao đổi dữ liệu với thiết bị ngoại vi Các lệnh: INPUT: copy dữ liệu từ một cổng xác định đến đích OUTPUT: copy dữ liệu từ nguồn đến cổng xác định START I/O: chuyển các lệnh đến BXL vào/ra để khởi tạo thao tác vào/ra TEST I/O: chuyển thơng tin trạng thái từ hệ thống vào/ra đến đích xác định 10 Phan Trung Kiên 37 Các lệnh điều khiển hệ thống HALT: dừng thực hiện chương trình WAIT: dừng thực hiện chương trình; liên tục kiểm tra điều kiện được chỉ định; chương trình được thực hiện khi điều kiện được thỏa mãn NO OPERATION: khơng cĩ thao tác nào được thực hiện, nhưng chương trình vẫn tiếp tục chạy Phan Trung Kiên 38 Các lệnh chuyển điều khiển Đặc điểm: Điều khiển rẽ nhánh trong chương trình PC được nạp giá trị địa chỉ mới Các lệnh: JUMP: nhảy khơng điều kiện đến lệnh mới JUMP CONDITIONAL: nhảy cĩ điều kiện CALL: lệnh gọi CTC RETURN: trở về từ CTC INTERRUPT: lệnh gọi CTC ngắt INTERRUPT RETURN: trở về từ CTC ngắt Phan Trung Kiên 39 Minh họa lệnh gọi CTC Phan Trung Kiên 40 Thể hiện ở Stack Sau lƯnh CALL Proc1 Khëi t¹o néi dung stack Sau lƯnh CALL Proc2 Sau lƯnh RETURN Sau lƯnh CALL Proc2 Sau lƯnh RETURN Sau lƯnh RETURN 11 Phan Trung Kiên 41 Các mode địa chỉ Tốn hạng cĩ thể là: Một giá trị cụ thể Nội dung của thanh ghi Nội dung của ngăn nhớ Nội dung của cổng vào ra Mode địa chỉ là cách thức địa chỉ hĩa trong lệnh để xác định tốn hạng Phan Trung Kiên 42 Các mode địa chỉ Mode địa chỉ tức thì Mode địa chỉ trực tiếp Mode địa chỉ gián tiếp Mode địa chỉ thanh ghi Mode địa chỉ gián tiếp qua thanh ghi Mode địa chỉ dịch chuyển Mode địa chỉ stack Phan Trung Kiên 43 Mode địa chỉ tức thì Tốn hạng là một phần của lệnh Tốn hạng nằm ngay trong trường địa chỉ Chỉ cĩ thể là tốn hạng nguồn Truy nhập tốn hạng rất nhanh Dải giá trị của tốn hạng bị hạn chế Ví dụ: ADD AX, 10 Phan Trung Kiên 44 Sơ đồ mode địa chỉ tức thì Tốn hạngMã lệnh Lệnh 12 Phan Trung Kiên 45 Mode địa chỉ trực tiếp Tốn hạng là ngăn nhớ cĩ địa chỉ được chỉ ra trong lệnh BXL tham chiếu bộ nhớ một lần để truy nhập dữ liệu Khơng gian địa chỉ là hữu hạn Ví dụ: ADD AL, [100] Phan Trung Kiên 46 Sơ đồ mode địa chỉ trực tiếp Địa chỉMã lệnh Lệnh Bộ nhớ Tốn hạng Phan Trung Kiên 47 Mode địa chỉ gián tiếp Tốn hạng là nội dung của ngăn nhớ cĩ địa chỉ nằm trong một ngăn nhớ khác, ngăn nhớ khác đĩ được thể hiện trong lệnh Vùng nhớ cĩ thể được tham chiếu là lớn Cĩ thể gián tiếp nhiều lần BXL phải thực hiện tham chiếu bộ nhớ nhiều lần để tìm tốn hạng ? chậm Ví dụ: ADD AH, [a] Phan Trung Kiên 48 Sơ đồ mode địa chỉ gián tiếp Địa chỉMã lệnh Lệnh Bộ nhớ Tốn hạng Địa chỉ của t/hạng 13 Phan Trung Kiên 49 Mode địa chỉ thanh ghi Tốn hạng là nội dung của một thanh ghi Số lượng thanh ghi cĩ hạn Trường địa chỉ nhỏ (chỉ cần ít bit) Độ dài lệnh ngắn hơn Nhận lệnh nhanh hơn Khơng tham chiếu bộ nhớ Truy nhập tốn hạng nhanh Tăng số lượng thanh ghi ? tăng tốc độ Ví dụ: ADD AL, AH Phan Trung Kiên 50 Sơ đồ mode địa chỉ thanh ghi Tên thanh ghiMã lệnh Lệnh Tập thanh ghi Tốn hạng Phan Trung Kiên 51 Mode địa chỉ gián tiếp qua thanh ghi Tốn hạng là ngăn nhớ cĩ địa chỉ nằm trong một thanh ghi Thanh ghi này được gọi là thanh ghi con trỏ Vùng nhớ cĩ thể được tham chiếu là lớn: 2n, trong đĩ n là độ dài (bit) của thanh ghi Ví dụ: SUB AL, [BX] Phan Trung Kiên 52 Sơ đồ mode gián tiếp qua thanh ghi Tên thanh ghiMã lệnh Lệnh Bộ nhớ Tốn hạngĐịa chỉ của t/hạng Tập thanh ghi 14 Phan Trung Kiên 53 Mode địa chỉ dịch chuyển Kết hợp hai mode: Mode gián tiếp qua thanh ghi Mode trực tiếp Trường địa chứa hai thành phần: Tên một thanh ghi Một hằng số Địa chỉ tốn hạng = ND thanh ghi = hằng số Ví dụ: ADD AL, [SI + 50] Phan Trung Kiên 54 Sơ đồ mode địa chỉ dịch chuyển Register R Mã lệnh Lệnh Bộ nhớ Tốn hạng Địa chỉ của t/hạng Tập thanh ghi Address A + Phan Trung Kiên 55 Mode địa chỉ stack Tốn hạng được ngầm hiểu là ngăn nhớ đỉnh ngăn xếp Ví dụ: PUSH AX Mã lệnh Lệnh Ngăn nhớ đỉnh stack Ngầm hiểu
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_3_tap_lenh_phan_trung_ki.pdf