Kiên trúc bộ lệnh của CPU Tìm hiểu bộ lệnh của CPU 16bit họ Intel Các dạng dữ liệu Copyright © 2006, HaiVDC... Tô chức bộ nhớ phăng = Bộ nhớ gồm 1 dãy các ô nhớ được đánh địa chỉ the
Trang 1Kiên trúc bộ lệnh của CPU
Tìm hiểu bộ lệnh của CPU 16bit họ Intel
Các dạng dữ liệu
Copyright © 2006, HaiVDC
Trang 2Dang byte — 8 bit
“ Có thê biêu diễn dạng:
" Số nguyên không dâu 8bit
Trang 4Dạng byte
= Vi du cho dang byte 10111000
“ Số nguyên không dâu tương ứng
Trang 5Dang word — 16 bit
“ Có thê biễu diễn dạng:
" Số nguyên không dâu 16bit:
2 word = (byte cao)x28 + (byte thap)
=" byte cao = word / 28
= byte thap = word % 28
Copyright © 2006, HaiVDC
Trang 7Kiên trúc bộ lệnh của CPU
Tô chức bộ nhớ
Copyright © 2006, HaiVDC
Trang 8Tô chức bộ nhớ phăng
= Bộ nhớ gồm 1 dãy các ô nhớ được đánh địa
chỉ theo thứ tự tăng dân bắt đâu từ 0
“ Mỗi ô nhớ chứa 1 byte thông tin
Trang 9Tổ chứ bộ nhớ theo Segment
=" Bộ nhớ chia thành các đoạn, mỗi đoạn gọi là 1 Segment
" Dia chỉ bắt đầu của 1 đoạn gọi là dia chi Segment
0 —> đ/c segment
Các ô nhớ trong
segment duoc đánh địa chỉ theo tứ
tu tang dan va bat
—+ d/c segment dau ttr 0 được gọi
Trang 10Phân loại địa chỉ
“ Đ/c vật lý là đ/c của ô nhớ trong tổ chức bộ
nhớ phẳng
# Đ/c logic là đ/c gôm: đ/c segment + đíc offset
“ Nhận xét:
4 Chương trinh (các lệnh CPU) luôn dùng đíc logic
đê truy xuât bộ nhớ
” Khi truy xuât bộ nhớ CPU sẽ chuyên đổi dic logic sang đc vật lý để truy xuất bộ nhớ
+1 Ký hiệu đí/c logic: segment:offset
Copyright © 2006, HaiVDC 10
Trang 11Kiên trúc bộ lệnh của CPU
Thanh ghi - Register
Copyright © 2006, HaiVDC 11
Trang 12Thanh ghi là ơi?
“ Thanh ghi là bộ nhớ bên trong CPU
“ Thanh ghi dùng đề chứa các thông tin mà
CPU sẽ sử dụng, hay xử lý
5 CPU có nhiêu thanh ghi, mỗi thanh ghi co 1
tên biêu thị (tên thanh ghi)
“ SỐ lượng và kích thước thanh ghi phụ thuộc
vào loại CPU
Copyright © 2006, HaiVDC 12
Trang 13Nhóm các thanh ghi đa dạng
=" Co 4 thanh ghi 16 bit co tén: AX, BX, CX, DX
=" AX (Accumulator Register) thanh ghi tich lay
=" BX (Base Register) thanh ghi co so (lwu d/c)
=" CX (Count Register) thanh ghi đêm
“ DX (Data Register) thanh ghi d@ liệu
Copyright © 2006, HaiVDC 13
Trang 14Thê hiện các thanh ghi đa dạng
Trang 15Nhóm các thanh ghi con trỏ/chỉ mục
“ Gôm 4 thanh ghi 16bit có tên SP, BP, SI, DI
=" SP (Stack Pointer): lam viéc theo co chế LIFO (last
in first out) Stack la vung nhớ dùng đê lưu các dữ
liệu tạm thời khi CPU thực hiện chương trình
1 Địa chỉ trở vê
1 Các trị của tham sô hàm
1 Biên cục bộ
=" Thao tac co ban:
4 Push: luu vao
2 Pop: lay ra
" Thanh ghi SP dung dé xac dinh dinh stack
Copyright © 2006, HaiVDC 15
Trang 16Nhóm các thanh ghi con trỏ/chỉ mục
" BP (Base pointed) thường dùng làm con trỏ để truy
xuât các phân tử trong stack
# SỊ (Source Index) chỉ số nguôn thường dùng dé xác
định đ/c offset bắt đầu của vùng nhớ nguôn (chuỗi
Trang 17Nhóm các thanh ghi con trỏ/chỉ mục
Trang 18Nhóm các thanh ghi Segment
“ Gôm 4 thanh ghi 16bit có tên: CS, DS, SS, ES
Chứa địa chỉ Segment của 1 đoạn
Copyright © 2006, HaiVDC 18
Trang 19Thanh ghi IP (Intruction pointer)
“ Thanh ghi con trỏ lệnh
5 |P xác định đ/c offset của lệnh kê tiếp trong
đoạn mã lệnh sẽ được CPU thị hành
“ Cặp thanh ghi CS:IP = đ/c lệnh kế tiếp trong
bộ nhớ mà CPU thị hành
Copyright © 2006, HaiVDC 19
Trang 20Thanh ghi co (flag)
“ Là thanh ghi 16 bit chứa các thông tin trạng
thái hiện thời của CPU (vd: trạng thái tràn của phép toán vừa thực hiện)
“ Thanh ghi cờ gồm các cờ, mỗi cờ dùng 1 bit
4 Co bat co gia tri 1
2 Cé tat cé gia tri 0
2 Mét s6 co: CF, ZF, SF, OF, AF, PF, DF, IF
Copyright © 2006, HaiVDC 20
Trang 21Thanh ghi cờ
= CF (carry flag) cờ nhớ: thường dùng với số không dâu
CF =1 khi kêt quả phép toán vừa thực hiện có nhớ
= SF (Signed flag)=1 khi kết quả phép toán vừa thực
hiện là 1 sô âm
= OF (Overflow flag) co tran chỉ dùng với số có dâu
OF=1 khi kết quả phép toán số có dấu và thực hiện bị
tràn
Copyright © 2006, HaiVDC 21