Các phương pháp địa chỉ hóa toán hạng

Một phần của tài liệu Cấu trúc máy tính chương 3 hệ thống máy tính (tt) (Trang 28 - 49)

1. Giới thiệu chung về tập lệnh

 Mỗi bộ xử lý có một tập lệnh xác định (mang tính kế thừa trong cùng một dòng họ).

 Tập lệnh thường có 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à bộ xử lý hiểu đƣợc để thực hiện một thao tác xác định.

 Các lệnh đƣợc mô tả bằng các kí hiệu gợi nhớ  các lệnh hợp ngữ.

270

Khuôn dạng của một lệnh máy

 Mã thao tác (Operation Code - Opcode): mã hóa cho thao tác mà CPU phải thực hiện.

 Tham chiếu toán hạng: mã hóa cho toán hạng

hoặc nơi chứa toán hạng mà thao tác sẽ tác động.

 Toán hạng nguồn (Source Operand): dữ liệu vào của thao tác (CPU sẽ đọc)

 Toán hạng đích (Destination Operand): dữ liệu ra của thao tác (CPU sẽ ghi)

Mã thao tác Tham chiếu toán hạng

Số lƣợng toán hạng trong lệnh

 Ba toán hạng:

 2 toán hạng nguồn, 1 toán hạng đích

 VD: c = a + b

 Từ lệnh dài vì phải mã hóa địa chỉ cho cả 3 toán hạng

 Thường được sử dụng trên các bộ xử lý tiên tiến

 Hai toán hạng:

 1 toán hạng là toán hạng nguồn, toán hạng còn lại vừa là nguồn vừa là đích.

 VD: a = a + b

 Giá trị cũ của 1 toán hạng nguồn sẽ bị ghi đè bằng KQ

272

Số lƣợng toán hạng trong lệnh (tiếp)

 Một toán hạng:

 Chỉ có 1 toán hạng đƣợc chỉ ra trong lệnh

 Toán hạng còn lại được ngầm định, thường là thanh ghi (VD: thanh chứa – Accumulator)

 Thường được sử dụng trên các bộ xử lý thế hệ cũ

 Không có toán hạng:

 Các toán hạng đều đƣợc ngầm định

 Sử dụng Stack

 VD: lệnh c = a + b

push a push b add

pop c

 Không thông dụng

2. Các kiểu thao tác điển hình

 Chuyển dữ liệu

 Xử lý số học với số nguyên

 Xử lý logic

 Điều khiển vào-ra

 Chuyển điều khiển (rẽ nhánh)

 Điều khiển hệ thống

274

Các lệnh chuyển dữ liệu

MOVE LOAD STORE

EXCHANGE CLEAR

SET PUSH POP

Copy dữ liệu từ nguồn đến đích

Copy dữ liệu từ bộ nhớ đến bộ xử lý Copy dữ liệu từ bộ xử lý đến bộ nhớ Tráo đổi nội dung của nguồn và đích Chuyển các bit 0 vào toán hạng đích Chuyển các bit 1 vào toán hạng đích

Copy dữ liệu từ nguồn đến đỉnh ngăn xếp Copy dữ liệu từ đỉnh ngăn xếp đến đích

Các lệnh số học

ADD

SUBTRACT MULTIPLY DIVIDE

ABSOLUTE NEGATE

INCREMENT DECREMENT COMPARE

Tính tổng hai toán hạng Tính hiệu hai toán hạng Tính tích hai toán hạng Tính thương hai toán hạng

Thay toán hạng bằng trị tuyệt đối của nó Đổi dấu toán hạng (lấy bù 2)

Cộng 1 vào toán hạng Trừ toán hạng đi 1

So sánh hai toán hạng để lập cờ

276

Các lệnh logic

AND OR XOR NOT TEST SHIFT ROTATE CONVERT

Thực hiện phép AND hai toán hạng Thực hiện phép OR hai toán hạng Thực hiện phép XOR hai toán hạng Đảo bit của toán hạng (lấy bù 1)

Thực hiện phép AND hai toán hạng để lập cờ Dịch trái (phải) toán hạng

Quay trái (phải) toán hạng

Chuyển đổi dữ liệu từ dạng này sang dạng khác

VD các lệnh AND, OR, XOR, NOT

 Giả sử có hai thanh ghi chứa dữ liệu nhƣ sau:

(R1) = 1010 1010 (R2) = 0000 1111

 Khi đó ta có:

(R1) AND (R2) = 0000 1010

 Phép toán AND có thể đƣợc dùng để xoá một số bit và giữ nguyên các bit còn lại của toán hạng.

(R1) OR (R2) = 1010 1111

 Phép toán OR có thể đƣợc dùng để thiết lập một số bit và giữ nguyên các bit còn lại của toán hạng.

(R1) XOR (R2) = 1010 0101

 Phép toán XOR có thể đƣợc dùng để đảo một số bit và giữ nguyên các bit còn lại của toán hạng.

278

Các lệnh SHIFT và ROTATE

0

0

0 Dịch trái logic

Dịch phải logic

Dịch phải số học Dịch trái số học

Quay trái logic

Quay phải logic

Các lệnh vào-ra chuyên dụng

IN Copy dữ liệu từ một cổng xác định đến đích OUT Copy dữ liệu từ nguồn đến một cổng xác định

280

Các lệnh chuyển điều khiển

JUMP (BRANCH) Nhảy (rẽ nhánh) không điều kiện; nạp vào PC một địa chỉ xác định

JUMP CONDITIONAL Kiểm tra điều kiện xác định, hoặc nạp vào PC một địa chỉ xác định hoặc không không làm gì cả

CALL Cất nội dung PC vào ngăn xếp, nạp vào PC địa chỉ xác định để nhảy đến thực hiện chương trình con RETURN Khôi phục nội dung PC từ đỉnh ngăn xếp để trở về

chương trình chính

Lệnh rẽ nhánh không điều kiện

 Chuyển tới thực hiện lệnh ở vị trí có địa chỉ là XXX:

PC ← XXX

lệnh lệnh

lệnh

lệnh_kế_tiếp

lệnh_rẽ_nhánh XXX lệnh

XXX

. . .

282

Lệnh rẽ nhánh có điều kiện

 Kiểm tra điều kiện trong lệnh:

 Nếu điều kiện đúng  chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX

PC  XXX

 Nếu điều kiện sai  chuyển sang thực hiện lệnh_kế_tiếp

 Điều kiện thường được kiểm tra thông qua các cờ.

 Có nhiều lệnh rẽ nhánh có điều kiện.

Minh họa lệnh rẽ nhánh có điều kiện

lệnh lệnh

lệnh

lệnh_kế_tiếp

lệnh_rẽ_nhánh_đk XXX lệnh

lệnh

XXX

. . .

284

Lệnh CALL và RETURN

 Lệnh gọi chương trình con: lệnh CALL

 Cất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) vào Stack

 Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con đƣợc gọi

→ Bộ xử lý chuyển sang thực hiện chương trình con tương ứng

 Lệnh trở về từ chương trình con: lệnh RETURN

 Lấy địa chỉ của lệnh_kế_tiếp đƣợc cất ở Stack nạp trả lại cho PC

→ Bộ xử lý đƣợc điều khiển quay trở về thực hiện tiếp lệnh nằm sau lệnh CALL

Minh họa lệnh CALL và RETURN

lệnh lệnh

lệnh lệnh

lệnh đầu tiên của CTCon lệnh_kế_tiếp

CALL CTCon lệnh

lệnh

CTCon

. . .

286

Các lệnh điều khiển hệ thống

HALT WAIT

NO OPERATION (NOP) LOCK

UNLOCK

Dừng thực hiện chương trình

Dừng thực hiện chương trình, lặp kiểm tra điều kiện cho đến khi thoả mãn thì tiếp tục thực hiện

Không thực hiện gì cả

Cấm không cho xin chuyển nhượng bus Cho phép xin chuyển nhượng bus

3. Các phương pháp địa chỉ hóa toán hạng

 Phương pháp địa chỉ hóa toán hạng là cách thức chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động.

 Toán hạng có thể là:

 Hằng số → cần cho biết giá trị của hằng số đó

 Nội dung của một thanh ghi bên trong CPU → cần cho biết tên của thanh ghi

 Nội dung của một ngăn nhớ → cần cho biết địa chỉ ngăn nhớ

288

Các chế độ địa chỉ thông dụng

 Chế độ địa chỉ tức thì

 Chế độ địa chỉ thanh ghi

 Chế độ địa chỉ trực tiếp

 Chế độ địa chỉ gián tiếp qua thanh ghi

 Chế độ địa chỉ dịch chuyển

Chế độ địa chỉ tức thì

 Immediate Addressing Mode

 Toán hạng là một hằng số ở ngay trong lệnh

 Ví dụ:

Một phần của tài liệu Cấu trúc máy tính chương 3 hệ thống máy tính (tt) (Trang 28 - 49)

Tải bản đầy đủ (PDF)

(213 trang)