You are on page 1of 17

25/03/2022

Chương 6:
TẬP LỆNH

ThS. GVC Tô Oai Hùng 1

6.1 GIỚI THIỆU

ThS. GVC Tô Oai Hùng 2

1
25/03/2022

Giới Thiệu
 Hoạt động của bộ xử lý được xác định bởi
các lệnh mà nó thực hiện, được gọi là các
lệnh máy (machine instruction) hoặc lệnh
máy tính (computer instruction).
 Tập các lệnh khác nhau mà bộ xử lý có thể
thực thi được gọi là tập lệnh (instruction
set) của bộ xử lý.

ThS. GVC Tô Oai Hùng 3

6.2 BIỂU DIỄN LỆNH

ThS. GVC Tô Oai Hùng 4

2
25/03/2022

Biểu Diễn Lệnh


 Mỗi lệnh được biểu diễn bằng chuỗi bit (0/1).
Các lệnh được chia thành các vùng/trường
(field) tương ứng với các thành phần tạo
thành lệnh.
 Hình 6.1 cho thấy ví dụ đơn giản về định
dạng lệnh.
 Với hầu hết các tập lệnh, có nhiều hơn một
định dạng được sử dụng.
 Để thực thi lệnh, lệnh đó phải được đọc vào
thanh ghi lệnh (IR) trong bộ xử lý và bộ xử
lý phải có khả năng trích xuất dữ liệu từ các
trường khác nhau trong lệnh để thực hiện
thao tác được yêu cầu.
ThS. GVC Tô Oai Hùng 5

Biểu Diễn Lệnh

Hình 6.1: Định dạng lệnh đơn giản.


 Một lệnh gồm mã thao tác (opcode) để chỉ
định hành động, cùng với nơi toán hạng đến
hoặc nơi toán hạng kết quả được chứa.
 Vấn đề xác định nơi các toán hạng được gọi
là định địa chỉ (addressing).

ThS. GVC Tô Oai Hùng 6

3
25/03/2022

Biểu Diễn Lệnh


 Trên một số máy, tất cả các lệnh có cùng độ
dài; trên một số máy khác có thể có nhiều
độ dài khác nhau.
 Khó có thể đọc sự biểu diễn nhị phân của
các lệnh máy. Vì vậy, người ta sử dụng biểu
tượng đại diện (symbolic representation)
cho mỗi lệnh máy.
 Các mã thao tác được thể hiện bằng các từ
viết tắt, gọi là từ gợi nhớ (mnemonics) để
chỉ ra thao tác của lệnh đó. Ví dụ:
 ADD Cộng
 SUB Trừ
 MUL Nhân
 DIV Chia
ThS. GVC Tô Oai Hùng 7

Biểu Diễn Lệnh



LOAD Đọc dữ liệu từ bộ nhớ

STOR Ghi dữ liệu vào bộ nhớ
 Các toán hạng cũng được thể hiện bằng
biểu tượng đại diện. Cho ví dụ, lệnh
ADD DX, Y
có nghĩa là cộng giá trị được chứa trong Y
với nội dung của thanh ghi DX, kết quả chứa
vào DX. Trong đó, Y tham chiếu đến địa chỉ
của một vị trí trong bộ nhớ.

ThS. GVC Tô Oai Hùng 8

4
25/03/2022

6.3 CÁC KIỂU DỮ LIỆU

ThS. GVC Tô Oai Hùng 9

Dữ Liệu Số
 Một phân biệt quan trọng giữa các số trong
toán học với các số bị giới hạn khi lưu trữ
trong máy tính.
 Các số nguyên bị giới hạn về độ lớn và các
số dấu chấm động bị giới hạn về độ chính
xác.
 Có hai loại dữ liệu số phổ biến trong máy
tính:
 Số nguyên (không dấu và có dấu).
 Số thực (dấu chấm động).
 Mặc dù tất cả hoạt động bên trong các thiết
bị số sử dụng số nhị phân, nhưng người sử
dụng lại hiểu và thao tác với số thập phân.
ThS. GVC Tô Oai Hùng 10

5
25/03/2022

Dữ Liệu Số
 Số BCD (binary coded decimal) được sử
dụng phổ biến trên một số mạch điện.
 Mỗi ký số thập phân được biểu diễn bằng
mã 4 bit: Số thập phân Số BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
ThS. GVC Tô Oai Hùng 9 1001 11

Dữ Liệu Số
 Số BCD có hai dạng:
 Số BCD không nén (unpacked BCD): mỗi
số BCD 4 bit được lưu trữ trong 4 bit thấp
của mỗi byte. Ví dụ, số 15 được lưu trữ
như sau:
0000 0001 0000 0101


Số BCD nén (packed BCD): hai số BCD
được lưu trữ trong 1 byte. Số BCD mà
chúng ta xét ở trên là số BCD nén.
 Số âm được thể hiện bằng cách gộp dấu
vào trong 4 bit ở đầu bên trái hoặc cuối bên
phải của các ký số thập phân. Dấu chuẩn
ThS. GVC Tô Oai Hùng 12

6
25/03/2022

Dữ Liệu Số
chuẩn của các giá trị là 11002 = C16 cho số
dương (+) và 11012 = D16 cho số âm (-). Ví
dụ:
110000112 = +3
110100112 = -3

ThS. GVC Tô Oai Hùng 13

Dữ Liệu Ký Tự
 Một dạng dữ liệu phổ biến là ký tự hoặc
chuỗi ký tự.
 Mỗi ký tự được biểu diễn bởi chuỗi các bit.
 Mã biểu diễn ký tự trước đây là mã Morse.
Ngày nay sử dụng phổ biến là mã ASCII và
Unicode.
 Mỗi ký tự trong bảng mã ASCII (American
standard code for information interchange)
được biểu thị bằng 7 bit.
 Đó đó, có thể mã hóa được 27 = 128 ký tự
khác nhau (từ 0 đến 127).
 Đây là số lượng mã lớn hơn mức cần thiết
để đại diện cho các ký tự in được và cho
một số ký tự điều khiển.
ThS. GVC Tô Oai Hùng 14

7
25/03/2022

Dữ Liệu Ký Tự
 Các máy tính thường dùng nhóm 8 bit làm
đơn vị lưu trữ nên bảng mã ASCII được mở
rộng thành mã 8 bit.
 Các ký tự mở rộng (128 đến 255) được dùng
làm ký tự trang trí hoặc bit thứ tám dùng
làm bit parity để kiểm tra lỗi trên đường
truyền.
 Bảng mã Unicode là bộ mã chuẩn quốc tế
dùng làm bộ mã cho tất cả ngôn ngữ khác
nhau trên thế giới.
 Mã Unicode có 3 phương thức mã hóa: UTF-
8, UTF-16 và UTF-32.
 UTF-8 là cách mã hóa để tương thích với
chuẩn ASCII.
ThS. GVC Tô Oai Hùng 15

6.4 CÁC PHƯƠNG PHÁP


ĐỊNH ĐỊA CHỈ

ThS. GVC Tô Oai Hùng 16

8
25/03/2022

Khái Niệm
 Định địa chỉ (addressing) là cách xác định
toán hạng của lệnh từ các trường địa chỉ
trong lệnh.
 Toán hạng có thể là hằng số, dữ liệu của
thanh ghi hay bộ nhớ. Các kỹ thuật (hay chế
độ) định địa chỉ bao gồm:
 Tức thời (immediate).
 Trực tiếp (direct).
 Gián tiếp (indirect).
 Thanh ghi (register).
 Gián tiếp thanh ghi (register Indirect)
 Chỉ số (indexed/displacement).
 Stack.
ThS. GVC Tô Oai Hùng 17

Định Địa Chỉ Tức Thời


 Dạng đơn giản nhất của các chế độ định địa
chỉ là định địa chỉ tức thời, nghĩa là giá trị
của toán hạng được thể hiện trong lệnh:

 Ví dụ: MOV AX, 100


 Ưu điểm của phương pháp này là không
tham chiếu bộ nhớ, do đó tiết kiệm bộ nhớ
hoặc bộ nhớ cache trong chu kỳ lệnh.
 Nhược điểm là kích thước của toán hạng bị
giới hạn trong kích thước của trường địa
chỉ. Trong hầu hết các tập lệnh, kích thước
này nhỏ so với chiều dài từ nhớ.
ThS. GVC Tô Oai Hùng 18

9
25/03/2022

Định Địa Chỉ Trực Tiếp


 Trường địa chỉ chứa địa chỉ hiệu dụng (địa
chỉ thật) của toán hạng.
 Ví dụ:
A DW 1234h
MOV AX, A (hoặc MOV AX, [A])
MOV BX, [100h]

ThS. GVC Tô Oai Hùng 19

Định Địa Chỉ Trực Tiếp


 Phương pháp này chỉ yêu cầu một tham
chiếu bộ nhớ và không cần tính toán địa chỉ
của toán hạng.
 Hạn chế rõ ràng là nó chỉ cung cấp không
gian địa chỉ giới hạn.

ThS. GVC Tô Oai Hùng 20

10
25/03/2022

Định Địa Chỉ Gián Tiếp


 Một giải pháp là để có trường địa chỉ tham
khảo đến địa chỉ của ô nhớ và ô nhớ đó có
chứa một địa chỉ đầy đủ của toán hạng
được gọi là định địa chỉ gián tiếp.
 Ưu điểm rõ ràng của cách tiếp cận này là
với một ô nhớ có chiều dài N, sẽ có một
không gian địa chỉ của 2N địa chỉ có thể.
 Nhược điểm của phương pháp này là đòi
hỏi hai lần tham chiếu bộ nhớ để lấy toán
hạng: Một lần để lấy địa chỉ và một lần để
lấy giá trị.

ThS. GVC Tô Oai Hùng 21

Định Địa Chỉ Gián Tiếp


 Ví dụ:
table DB 3, 7, 5, 10
MOV AL, table[BX]
Gán nội dung của ô nhớ có địa chỉ là (offset
của mảng table + BX) vào thanh ghi AL.

ThS. GVC Tô Oai Hùng 22

11
25/03/2022

Định Địa Chỉ Thanh Ghi


 Tương tự như định địa chỉ trực tiếp. Sự
khác biệt duy nhất là trường địa chỉ dùng để
chỉ thanh ghi chứ không phải địa chỉ trong
bộ nhớ chính.
 Ưu điểm là chỉ cần trường địa chỉ có kích
thước nhỏ và không mất thời gian tham
chiếu bộ nhớ.
 Ví dụ:
MOV AX, BX

ThS. GVC Tô Oai Hùng 23

Định Địa Chỉ Gián Tiếp Thanh Ghi


 Tương tự như địa chỉ gián tiếp. Trường địa
chỉ tham chiếu đến thanh ghi.
 Vùng địa chỉ của lệnh chứa tên thanh ghi,
giá trị thanh ghi là địa chỉ ô nhớ lưu toán
hạng.
 Ví dụ:
MOV AX, [BX]

ThS. GVC Tô Oai Hùng 24

12
25/03/2022

Định Địa Chỉ Chỉ Số


 Một chế độ định địa chỉ rất mạnh, kết hợp
khả năng định địa chỉ trực tiếp và định địa
chỉ gián tiếp thanh ghi gọi là định địa chỉ chỉ
số hay định địa chỉ dịch chuyển (indexed
/displacement addressing).

ThS. GVC Tô Oai Hùng 25

Định Địa Chỉ Chỉ Số


 Định địa chỉ chỉ số yêu cầu là các lệnh phải
có hai trường địa chỉ, ít nhất một trong số
đó là tường minh.
 Giá trị được chứa trong một trường địa chỉ
được sử dụng trực tiếp (Address A).
Trường địa chỉ còn lại (hoặc tham chiếu
ngầm định dựa trên mã thao tác), tham
chiếu đến thanh ghi mà nội dung của nó
được cộng với Address A để sinh ra địa chỉ
hiệu dụng của toán hạng.

ThS. GVC Tô Oai Hùng 26

13
25/03/2022

Định Địa Chỉ Stack


 Kết hợp với ngăn xếp (stack) là con trỏ ngăn
xếp, giá trị của nó là địa chỉ đỉnh ngăn xếp.
 Con trỏ ngăn xếp chứa trong thanh ghi SP.
 Vì vậy, các tham chiếu đến các vị trí ngăn
xếp trong bộ nhớ thực sự là cách định địa
chỉ gián tiếp thanh ghi.
 Ví dụ:
PUSH AX
PUSH BX
POP CX

ThS. GVC Tô Oai Hùng 27

Câu Hỏi và Bài Tập Chương 6


1. Các phần tử tiêu biểu của một lệnh máy là
gì?
2. Nơi nào có thể chứa toán hạng nguồn và
đích?
3. Những kiểu toán hạng nào thường dùng
trong các tập lệnh máy?
4. Hãy biểu diễn giá trị ở dạng thập lục phân:
a) Số BCD nén của 23.
b) Các ký tự ASCII là '2' và '3'.
5. Cho biết giá trị thập phân của các số BCD
nén sau đây:
a)0111 0011 0000 1001
b)0101 1000 0010
c)0100 1010 0110
ThS. GVC Tô Oai Hùng 28

14
25/03/2022

Câu Hỏi và Bài Tập Chương 6


6. Cho một bộ xử lý có các từ nhớ 1 byte. Hãy
cho biết giá trị nguyên nhỏ nhất và lớn nhất
có thể được biểu diễn ở các dạng sau:
a) Không dấu.
b) Có dấu.
c) Bù một.
d) Bù hai.
e) Số BCD nén không dấu.
f) Số BCD nén có dấu (giả sử 4 bit dấu nằm
bên trái số đó).
7. Xét phép cộng hai số BCD nén không dấu.
Nếu mỗi số BCD có N ký số thì nó có 4N bit.
Hai số được cộng sử dụng bộ cộng nhị
phân. Hãy đề xuất một quy tắc đơn giản để
ThS. GVC Tô Oai Hùng 29
thực hiện phép cộng cho kết quả đúng với
hai số 1698 và 1786.

Câu Hỏi và Bài Tập Chương 6


8. Bù 10 (ten’s complement) của một số thập
phân X được định nghĩa là 10N – X, trong đó
N là số ký số thập phân của X. Hãy sử dụng
bù 10 để thực hiện phép trừ thập phân sau:
073610 – 032610.
9. Định địa chỉ tức thời là gì?
10.Định địa chỉ trực tiếp là gì?
11.Định địa chỉ gián tiếp là gì?
12.Định địa chỉ thanh ghi là gì?
13.Định địa chỉ gián tiếp thanh ghi là gì?
14.Định địa chỉ chỉ số là gì?
15.Cho các địa chỉ sau trong bộ nhớ có chứa
giá trị của toán hạng:
ThS. GVC Tô Oai Hùng 30

15
25/03/2022

Câu Hỏi và Bài Tập Chương 6


- Địa chỉ 20 chứa 40.
- Địa chỉ 30 chứa 50.
- Địa chỉ 40 chứa 60.
- Địa chỉ 50 chứa 70.
Giả sử thanh ghi tích luỹ AX chứa toán
hạng, hãy cho biết giá trị của toán hạng
được nạp vào thanh ghi AX khi các lệnh sau
được thực thi:
a) LOAD IMMEDIATE 20.
b) LOAD DIRECT 20.
c) LOAD INDIRECT 20.
d) LOAD IMMEDIATE 30.
e) LOAD DIRECT 30.
f) LOAD INDIRECT 30.
ThS. GVC Tô Oai Hùng 31

Câu Hỏi và Bài Tập Chương 6


16.Giả sử địa chỉ được lưu trong thanh ghi bộ
đếm chương trình (PC) được ký hiệu X1.
Các lệnh được lưu trong X1 có trường địa
chỉ là X2. Toán hạng cần thiết để thực hiện
lệnh được lưu trong bộ nhớ với địa chỉ là
X3. Thanh ghi chỉ số chứa giá trị X4. Hãy
cho biết Mối quan hệ giữa các ký hiệu trên
nếu chế độ định địa chỉ của lệnh là:
a) Trực tiếp.
b) Gián tiếp.
c) Chỉ số.
17.Trường địa chỉ trong lệnh chứa giá trị thập
phân 14. Hãy cho biết nơi chứa toán hạng
trong các kiểu định địa chỉ sau:
ThS. GVC Tô Oai Hùng 32

16
25/03/2022

Câu Hỏi và Bài Tập Chương 6


a) Tức thời.
b) Trực tiếp.
c) Gián tiếp.

ThS. GVC Tô Oai Hùng 33

17

You might also like