Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương

a. Định địa chỉ tức thì

 Dạng đơn giản nhất của định địa chỉ

 Toán hạng = A

 Chế độ này có thể được sử dụng để định nghĩa và sử dụng các

hằng số và thiết lập các giá trị ban đầu của biến

 Các số thường được lưu trữ dưới dạng số bù hai

 Bit ngoài cùng bên trái của trường toán hạng được sử dụng như

bit dấu

 Ưu điểm:

 Chỉ cần truy xuất bộ nhớ một lần (để lấy lệnh), do vậy tiết kiệm

một chu kỳ cache hoặc bộ nhớ trong chu kỳ lệnh.

 Nhược điểm:

 Kích thước của số bị giới hạn bởi kích thước của trường địa chỉ vì

thông thường kích thước của trường này nhỏ hơn kích thước từ

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 1

Trang 1

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 2

Trang 2

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 3

Trang 3

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 4

Trang 4

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 5

Trang 5

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 6

Trang 6

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 7

Trang 7

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 8

Trang 8

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 9

Trang 9

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 34 trang xuanhieu 5220
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương

Bài giảng Kiến trúc máy tính - Chương 11: Tập lệnh các chế độ định địa chỉ và định dạng lệnh - Nguyễn Thị Phương
+
 Kiến trúc máy tính
+ Chương 11
 Tập lệnh: Các chế độ định địa chỉ
 và định dạng lệnh
+
 Chương 11. Chế độ định địa chỉ và 
 định dạng lệnh
  11.1 Các chế độ địa chỉ
  11.2 Các chế độ địa chỉ của x86 và ARM
  11.3 Định dạng lệnh
  11.4 Định dạng lệnh của x86 và ARM
  11.5 Hợp ngữ (Assembly Language)
+
 11.1 Các chế độ định địa chỉ
 a. Tức thì
 b. Trực tiếp
 c. Gián tiếp
 d. Thanh ghi
 e. Gián tiếp thanh ghi
 f. Dịch chuyển
 g. Ngăn xếp
+
Các chế độ định địa 
chỉ
+
 a. Định địa chỉ tức thì
  Dạng đơn giản nhất của định địa chỉ
  Toán hạng = A
  Chế độ này có thể được sử dụng để định nghĩa và sử dụng các 
 hằng số và thiết lập các giá trị ban đầu của biến
  Các số thường được lưu trữ dưới dạng số bù hai
  Bit ngoài cùng bên trái của trường toán hạng được sử dụng như
 bit dấu
  Ưu điểm:
  Chỉ cần truy xuất bộ nhớ một lần (để lấy lệnh), do vậy tiết kiệm 
 một chu kỳ cache hoặc bộ nhớ trong chu kỳ lệnh.
  Nhược điểm:
  Kích thước của số bị giới hạn bởi kích thước của trường địa chỉ vì 
 thông thường kích thước của trường này nhỏ hơn kích thước từ
Ví dụ: 
 ADD R1,5 ; R1←R1+5 
Trong đó, 5 là một toán hạng nguồn được tham chiếu trực tiếp trong câu lệnh: địa chỉ tức 
thì 
+
 b. Định địa chỉ trực tiếp
  Trường địa chỉ chứa địa chỉ hiệu dụng của toán hạng
  Địa chỉ hiệu dụng (Effective address (EA)) = trường địa chỉ
 (Address field (A))
  Phổ biến trong các thế hệ máy tính trước đây
  Tham chiếu bộ nhớ một lần để lấy dữ liệu toán hạng
  Hạn chế: chỉ cung cấp một không gian địa chỉ hạn chế
Ví dụ: 
 ADD R1,A ; R1←R1+(A) 
Trong đó, A là địa chỉ một vị trí bộ nhớ, (A) là nội dung của vị trí đó. CPU tham chiếu 
đến toán hạng có địa chỉ A trong bộ nhớ. 
+
 c. Định địa chỉ gián tiếp
  Tham chiếu đến địa chỉ của một từ trong bộ nhớ chứa địa chỉ đầy 
 đủ của toán hạng
  EA = (A)
  Dấu ngoặc đơn được hiểu như là nội dung của
  Ưu điểm:
  Với một từ có kích thước N cho phép một không gian địa chỉ là 2N
  Nhược điểm:
  Thực thi câu lệnh đòi hỏi hai lần tham chiếu bộ nhớ để truy xuất toán 
 hạng
  Một để lấy ra địa chỉ, hai là để lấy ra giá trị của nó
  Một biến thể hiếm gặp của địa chỉ gián tiếp là địa chỉ gián tiếp 
 nhiều cấp hoặc nhiều tầng
  EA = ( . . . (A) . . . )
  Nhược điểm là cần ba hoặc nhiều hơn tham chiếu bộ nhớ để truy xuất 
 toán hạng
+
 d. Định địa chỉ thanh ghi
  Trường địa chỉ dùng để tham chiếu 
 thanh ghi chứ không phải địa chỉ bộ
 nhớ chính
  EA = R
  Ưu điểm:
  Chỉ cần một trường địa chỉ nhỏ trong 
 lệnh (do số lượng thanh ghi ít)
  Không cần tham chiếu bộ nhớ (tốn nhiều 
 thời gian)
  Nhược điểm:
  Không gian địa chỉ giới hạn
Ví dụ: 
 ADD R1,A ; R1←R1+(A) 
Trong đó, R1 là một thanh ghi trong bộ xử lý, câu lệnh trên tham chiếu giá trị (A) trong 
bộ nhớ cộng với giá trị lưu trữ trong thanh ghi R1, kết quả được ghi vào R1. 
+
 e. Định địa chỉ gián tiếp thanh ghi
  Tương tự như địa chỉ gián tiếp
  Sự khác biệt duy nhất là trường địa 
 chỉ tham chiếu đến thanh ghi
  EA = (R)
  Không gian địa chỉ lớn hơn 
 (trường địa chỉ tham chiếu đến vị
 trí chứa địa chỉ có độ dài bằng 
 một từ )
  Tham chiếu bộ nhớ ít hơn định địa 
 chỉ gián tiếp
+
 f. Định địa chỉ dịch chuyển -
 Displacement Addressing
  Kết hợp chế độ định địa chỉ trực tiếp và định địa chỉ trực tiếp 
 thanh ghi
  EA = A + (R)
  Yêu cầu lệnh phải có hai trường địa chỉ, ít nhất một trong hai phải 
 có giá trị cụ thể
  Một giá trị trong một trường địa chỉ (giá trị = A) được sử dụng trực 
 tiếp
  Một trường địa chỉ khác tham chiếu đến thanh ghi trong đó nội dung 
 được cộng với A để tạo ra địa chỉ hiệu dụng
  Hầu hết sử dụng:
  Định địa chỉ tương đối
  Định địa chỉ thanh ghi cơ sở
  Định địa chỉ chỉ mục
+
 Định địa chỉ tương đối
  Thanh ghi được tham chiếu ngầm là thanh ghi PC (program 
 counter)
  Địa chỉ lệnh tiếp theo được cộng vào trường địa chỉ để tạo ra EA
  Thông thường trường địa chỉ được coi là dữ liệu dạng số bù 2 của 
 hoạt động này
  Do đó, địa chỉ hiệu dụng là quan hệ dịch chuyển so với địa chỉ của 
 lệnh
  Khai thác tính cục bộ của bộ nhớ
  Lưu các bit địa chỉ trong lệnh nếu hầu hết tham chiếu bộ nhớ
 tương đối gần lệnh đang được thực thi
+
 Định địa chỉ thanh ghi cơ sở
  Thanh ghi được tham chiếu chứa một địa chỉ bộ nhớ chính và 
 trường địa chỉ chứa một giá trị dịch chuyển so với địa chỉ này
  Tham chiếu thanh ghi có thể rõ ràng hoặc ngầm 
  Khai thác tính cục bộ của tham chiếu bộ nhớ
  Phương tiện hữu ích để thực hiện phân đoạn
  Trong một số trường hợp, một thanh ghi cơ sở duy nhất được sử
 dụng và được sử dụng ngầm 
  Các trường hợp khác, người lập trình có thể chọn một thanh ghi 
 để lưu địa chỉ cơ sở của một đoạn và lệnh phải tham chiếu nó một 
 cách rõ ràng
+
 Định địa chỉ chỉ mục - Indexed 
 Addressing
  Trường địa chỉ tham chiếu địa chỉ bộ nhớ chính và thanh ghi được tham chiêu 
 chứa giá trị dịch chuyển dương từ địa chỉ này
  Phương pháp tính toán EA giống như với định địa chỉ thanh ghi cơ sở
  Một ứng dụng quan trọng: cung cấp một cơ chế hiệu quả để thực hiện các hoạt 
 động lặp
  Autoindexing
  Tự động tăng hoặc giảm thanh ghi chỉ mục sau mỗi tham chiếu đến nó
  EA = A + (R)
  (R) (R) + 1
  Postindexing
  Indexing is performed after the indirection
  EA = (A) + (R)
  Preindexing
  Indexing is performed before the indirection
  EA = (A + (R))
+
 Định địa chỉ ngăn xếp
  Một ngăn xếp là một mảng liên tiếp các ô nhớ: danh 
 sách dạng vào trước ra sau
  Lệnh có chế độ địa chỉ này là các lệnh thực hiện trực 
 tiếp với đỉnh ngăn xếp sử dụng thanh ghi ngầm 
 định là thanh ghi SP
  Thanh ghi SP (stack pointer – con trỏ ngăn xếp) 
 chứa địa chỉ đỉnh ngăn xếp (trỏ vào đỉnh ngăn xếp)
  Do đó, chế độ địa chỉ ngăn xếp thực chất là chế độ địa chỉ
 gián tiếp thanh ghi
  Các lệnh máy không cần tham chiếu bộ nhớ
+
 Các chế độ định địa chỉ cơ bản
 Chế độ Thuật toán Ưu điểm Nhược điểm 
 Không cần tham chiếu Hạn chế về giá trị của toán 
 Tức thì Toán hạng = A 
 bộ nhớ hạng 
 Trực tiếp EA = A Đơn giản Không gian địa chỉ hạn chế 
 Tham chiếu bộ nhớ nhiều 
 Gián tiếp EA = (A) Không gian địa chỉ lớn 
 lần 
 Không cần tham chiếu 
 Thanh ghi EA = R Không gian địa chỉ hạn chế 
 bộ nhớ 
 Gián tiếp 
 EA = A + (R) Linh hoạt Phức tạp 
 thanh ghi 
 Không cần tham chiếu 
 Ngăn xếp EA = đỉnh ngăn xếp Khả năng ứng dụng ít 
 bộ nhớ 
+
 Ví dụ 1
 Câu lệnh LOAD: nạp dữ liệu vào thanh ghi ngầm định AC. 
 Xác định giá trị của AC trong các trường hợp sau. Tính số lần 
 truy xuất bộ nhớ của các lệnh trên
 a. LOAD 1 20  Trong đó:
  1: chế độ tức thì
 b. LOAD 2 20
  2: chế độ trực tiếp
 c. LOAD 3 20  3: chế độ gián tiếp
 d. LOAD 1 30 Nội dung các ngăn nhớ
 Địa chỉ Dữ liệu
 e. LOAD 2 30
 20 40
 f. LOAD 3 30 30 50
 40 60
 50 70
+
 Ví dụ 2
 Trường địa chỉ của một câu lệnh là 14 (hệ thập phân). Toán 
 hạng của lệnh nằm ở đâu trong các trường hợp sau
 a) Chế độ địa chỉ tức thì
 b) Chế độ địa chỉ trực tiếp
 c) Chế độ địa chỉ gián tiếp
 d) Chế độ địa chỉ thanh ghi
 e) Chế độ địa chỉ gián tiếp thanh ghi
 11.3 Định dạng lệnh
 • Định nghĩa cách bố trí các trường bên trong lệnh
 • Gồm có các thông tin sau cần được thể hiện:
 • Opcode: mã lệnh
 • Chế độ địa chỉ: ngầm định hoặc cần được chỉ rõ, cho biết 
 chế độ định địa chỉ cho mỗi toán hạng
 • Địa chỉ các toán hạng: ngầm định hoặc được chỉ rõ
 • Với mỗi tập lệnh, có thể có nhiều định dạng được sử dụng
 • Ví dụ: máy giả thuyết CPUSIM
read 0011 0000 0000 0000
jmpn Done 1011 0000 0000 1010
+
 Kích thước từ lệnh
  Phụ thuộc vào:
  Kích thước bộ nhớ: vd: cho phép quản lý BN dung lượng bao nhiêu số 
 bit trường địa chỉ
  Tổ chức bộ nhớ: kích thước ngăn nhớ, kích thước từ
  Cấu trúc bus: số đường địa chỉ, số đường dữ liệu đơn vị truyền
  Sự phức tạp của bộ vi xử lý: lệnh càng nhiều địa chỉ (kích thước từ lệnh 
 càng lớn) VXL càng phức tạp
  Tốc độ bộ vi xử lý
  Kích thước từ lệnh thường bằng hoặc là bội của đơn vị truyền
  VD: bus dữ liệu có kích thước 16b, kích thước từ lệnh có thể là 16b 
 hoặc 32b tùy kiến trúc
+
 Phân bổ bit
  Việc phân bổ các bit (phân chia các trường) trong một từ lệnh phụ 
 thuộc vào các yếu tố sau:
  Số lượng của các chế độ định địa chỉ: một lệnh có thể có một hoặc nhiều 
 chế độ địa chỉ, các chế độ này có thể ngầm định hoặc 
  Số lượng các toán hạng
  Thanh ghi so sánh với bộ nhớ
  Số lượng tập thanh ghi
  Dải địa chỉ
  Địa chỉ chi tiết
Định dạng lệnh PDP-8
+
 Định dạng lệnh PDP-10
+
 Các lệnh chiều dài thay đổi
  Sự thay đổi có thể được cung cấp hiệu quả và gọn nhẹ
  Tăng sự phức tạp của VXL
  Không loại bỏ mong muốn làm cho tất cả các chiều dài lệnh 
 tương đồng với chiều dài từ
  Vì VXL không biết chiều dài của lệnh tiếp theo sẽ được truy xuất. 
 Một chiến lược điển hình là truy xuất một số byte hoặc word bằng 
 ít nhất lệnh dài nhất có thể
  Đôi khi nhiều lệnh được truy xuất
Định dạng lệnh PDP-11
+
Các ví dụ lệnh VAX
Định dạng lệnh x86
 x86 được trang bị nhiều định 
 dạng lệnh
Các định dạng lệnh ARM
Ví dụ về sử dụng ARM Immediate 
Constants (hằng số tức thì)
Tập lệnh Thumb
Hợp ngữ
+ Tổng kết Tập lệnh: Các chế độ
 định địa chỉ và định 
 dạng
 Chapter 11 
  Chế độ định địa chỉ x86
  Các chế độ định địa chỉ
  Các chế độ định địa chỉ ARM
  Định địa chỉ tức thì
  Định địa chỉ trực tiếp  Định dạng lênh
  Định địa chỉ gián tiếp  Kích thước lệnh
  Định địa chỉ thanh ghi  Phân bố các bit
  Định địa chỉ gián tiếp thanh  Các lệnh có kích thước thay 
 ghi đổi
  Định địa chỉ dịch chuyển
  Định dạng lênh X86
  Định địa chỉ ngăn xếp
  Định dạng lệnh ARM

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_11_tap_lenh_cac_che_do_d.pdf