Phan Trung Kiên 5Mộ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 Các thanh ghi địa chỉ: Chức năng: dùng để quản lý địa chỉ của ngăn nh
Trang 1Chương 3 Tập Lệnh
Phan Trung Kiên Đại học Tây Bắc
Chương 3 Kiến Trúc Tập Lệnh
3.1 Tập thanh ghi
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
Phân loại thanh ghi theo chức năng
hay cổng vào-ra
liệu
tin điều khiển và trạng thái của CPU
Trang 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
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.
Bộ đếm chương trình (Program
Counter – PC):
sẽ được nhận vào
của PC tự động tăng để trỏ sang lệnh kế tiếp
nằm ngay sau lệnh vừa nhận
Minh họa bộ đếm chương trình
Trang 3Phan Trung Kiên 9
Thanh ghi con trỏ dữ liệu (Data
Pointer – DP):
muốn truy nhập
Minh hoạ thanh ghi con trỏ dữ liệu
Ngăn xếp (Stack)
- First Out)
trình con
trong ngăn xếp
Thanh ghi con trỏ ngăn xếp (Stack
Pointer – SP):
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
Thông tin được đọc từ ngăn nhớ được trỏ bởi SP
Nội dung của SP tự động tăng
Trang 4Phan Trung Kiên 13
Minh họa con trỏ ngăn xếp SP
Thanh ghi cơ sở (Base Register) và thanh ghi chỉ số (Index Register):
sở
ngăn nhớ mà CPU cần truy nhập so với ngăn nhớ cơ sở
sở + chỉ số
Minh họa thanh ghi cơ sở và thanh ghi
kết qủa trung gian phục vụ cho việc xử lý các dữ liệu của CPU
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)
Trang 5Phan Trung Kiên 17
Thanh ghi trạng thái:
CPU
Các cờ phép toán: biểu thị trạng thái của kết qủa
phép toán.
Các cờ điều khiển: biểu thị trạng thái điều khiển của
CPU.
Các cờ phép toán:
Cờ Zero (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ếu phép toán có nhớ ra ngoà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.
Các cờ điều khiển:
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 ngoà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 ngoài.
Tập thanh ghi của một số bộ xử lý
Trang 6Phan Trung Kiên 21
3.2 Tập lệnh
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ữ
Giản đồ trạng thái của chu kỳ lệnh
Không kiểm tra ngắt
Tính toán địa chỉ lệnh
Giải mã thao tác lệnh
Tính toán địa chỉ toán hạng
Xử lý dữ liệu
Tính toán địa chỉ toán hạng
Nhận lệnh Nhận toánhạng Cất toánhạng
Nhiều toá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
Giản đồ trạng thái của chu kỳ lệnh
Có kiểm tra ngắt
Tính toán
địa chỉ
lệnh
Giải mã
thao tác
lệnh
Tính toán địa chỉ toán hạng
Xử lý dữ liệu
Tính toán địa chỉ toán hạng
Nhận lệnh Nhận toánhạng Cất toánhạng
Nhiều toá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
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 toá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 toán hạng
Trang 7Phan Trung Kiên 25
Các kiểu lệnh
Các kiểu toán hạng
Số nguyên
Số dấu phẩy động
Mã của ký tự ASCII, BCD mở rộng,
Toán hạng xử lý với cờ
Số lượng toán hạng
Toán hạng 1, toá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
Số lượng 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
Trang 8Phan Trung Kiên 29
Số lượng toán hạng
Toán hạng thường là một thanh ghi
Toán hạng thứ hai được ngầm hiểu
Phổ dụng trong các máy xa xưa
Số lượng toán hạng
Điều khiển hệ thống
ít dùng
So sánh số lượng toá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
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
Các kiểu thao tác
Trang 9Phan Trung Kiên 33
Các lệnh chuyển dữ liệu
Sao chép dữ liệu từ nguồn sang đích
Không ảnh hưởng đến các cờ
STORE : copy dữ liệu từ BXL đến bộ nhớ
EXCHANGE : trao đổi nội dung của nguồn và đích
Các lệnh số học
Thực hiện các phép toán số học
Có ảnh hưởng đến thanh ghi cờ
SUBTRACT : tính hiệu hai toán hạng
MULTIPLY : tính tích hai toán hạng
DIVIDE : tích thương hai toán hạng
ABSOLUTE : lấy giá trị tuyệt đối của toán hạng
NEGATE : đổi dấu toán hạng (lấy bù 2)
INCREMENT : tăng toán hạng lên 1
DECREMENT : giảm toán hạng đi 1
Các lệnh logic
Đặc điểm:
Thực hiện các phép toán logic
Có ảnh hưởng đến thanh ghi cờ
Các lệnh:
AND : thực hiện AND bit hai toán hạng
XOR : thực hiện XOR bit hai toán hạng
NOT : đảo bit của toán hạng (lấy bù 1)
TEST : thực hiện AND hai toán hạng để lập cờ
SHIFT : thực hiện dịch bit toán hạng
ROTATE : thực hiện quay bit toán hạng
COMPARE : so sánh hai toán hạng
Các lệnh vào ra
Trao đổi dữ liệu với thiết bị ngoại vi
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
Trang 10Phan Trung Kiên 37
Các lệnh điều khiển hệ thống
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
Các lệnh chuyển điều khiển
Điều khiển rẽ nhánh trong chương trình
PC được nạp giá trị địa chỉ mới
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
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
Trang 11Phan Trung Kiên 41
Các mode địa chỉ
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
để xác định toán hạng
Các mode địa chỉ
Mode địa chỉ tức thì
Sơ đồ mode địa chỉ tức thì
Toán hạng
Mã lệnh
Lệnh
Trang 12Phan Trung Kiên 45
Mode địa chỉ trực tiếp
trong lệnh
liệu
Sơ đồ mode địa chỉ trực tiếp
Địa chỉ
Mã lệnh
Lệnh
Bộ nhớ
Toán hạng
Mode địa chỉ gián tiếp
nằm trong một ngăn nhớ khác, ngăn nhớ khác
đó được thể hiện trong lệnh
để tìm toán hạng ? chậm
Sơ đồ mode địa chỉ gián tiếp
Địa chỉ
Mã lệnh
Lệnh
Bộ nhớ
Toán hạng Địa chỉ của t/hạng
Trang 13Phan Trung Kiên 49
Mode địa chỉ thanh ghi
Độ dài lệnh ngắn hơn
Nhận lệnh nhanh hơn
Sơ đồ mode địa chỉ thanh ghi
Tên thanh ghi
Mã lệnh
Lệnh
Tập thanh ghi
Toán hạng
Mode địa chỉ gián tiếp qua thanh ghi
một thanh ghi
trong đó n là độ dài (bit) của thanh ghi
Sơ đồ mode gián tiếp qua
thanh ghi
Tên thanh ghi
Mã lệnh
Lệnh
Bộ nhớ
Toán hạng Địa chỉ của t/hạng
Tập thanh ghi
Trang 14Phan Trung Kiên 53
Mode địa chỉ dịch chuyển
Mode gián tiếp qua thanh ghi
Mode trực tiếp
Tên một thanh ghi
Một hằng số
Sơ đồ mode địa chỉ dịch
chuyển
Register R
Mã lệnh
Lệnh
Bộ nhớ
Toán hạng Địa chỉ của t/hạng
Tập thanh ghi
Address A +
Mode địa chỉ stack
ngăn xếp
Mã lệnh
Lệnh
Ngăn nhớ đỉnh stack
Ngầm hiểu