Xem mẫu
KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH (Computer Organization and Architecture)
Chương 6
Lập trình Hợp ngữ
bangtqh@utc2.edu.vn
Nội dung
1. Giới thiệu cấu trúc tập lệnh của CPU
2. Tập thanh ghi của 8086/8088
3. Các kiểu thao tác của tập lệnh
4. Tập lệnh họ 8086/8088
bangtqh@utc2.edu.vn Chương 6 - Lập trình hợp ngữ 2
6.1. Giới thiệu tập lệnh của CPU Mỗi CPU có 1 tập lệnh xác định
Tập lệnh có hàng chục hoặc hàng trăm lệnh. Intel
8086/8088 có tập lệnh khoảng 115 lệnh chia làm
5 nhóm
Mỗi lệnh là một chuỗi số nhị phân mà CPU hiểu
được và thực hiện 1 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 của hợp ngữ (Assembly)
bangtqh@utc2.edu.vn Chương 6 - Lập trình hợp ngữ 3
Giản đồ trạng thái của Chu kỳ lệnh
NhËn lÖnh
NhËn to¸n
h¹ng
CÊt to¸n
h¹ng
NhiÒu NhiÒu to¸n kÕt h¹ng qu¶
TÝnh to¸n
®Þa chØ lÖnh
Gi¶i m· thao t¸c
lÖnh
TÝnh to¸n
®Þa chØ to¸n Xö lý d÷ liÖu
h¹ng
TÝnh to¸n ®Þa chØ to¸n
h¹ng
KÕt thóc lªnh, nhËn lÖnh
tiÕp theo
DL d¹ng x©u hoÆc
vect¬
Không kiểm tra ngắt
bangtqh@utc2.edu.vn 4
Giản đồ trạng thái của chu kỳ lệnh
NhËnlÖnh
NhËnto¸n h¹ng
CÊt to¸n h¹ng
NhiÒu NhiÒu to¸n kÕt h¹ng qu¶
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
KiÓm tra ng¾t
Ng¾t
KÕt thóc lªnh, nhËn lÖnh tiÕp theo
DLd¹ng x©u hoÆc vect¬
Kh«ng cã ng¾t
Có kiểm tra ngắt cuối mỗi chu kỳ lệnh
bangtqh@utc2.edu.vn 5
6.2. Tập thanh ghi của 8086/8088
Nhóm thanh
ghi đa Nhóm năng thanh ghi
đoạn (segment)
8086/8088 có 14 thanh ghi 16 bit chia làm 4 nhóm như hình vẽ
8086/8088 có bus địa chỉ 20 bit (1MB không gian địa chỉ) sử dụng phương pháp đánh địa chỉ phân đoạn (segment addressing)
Địa chỉ vật lý = địa chỉ segment*16 + địa chỉ offset bangtqh@utc2.edu.vn Chương 6 - Lập trình hợp ngữ 6
Nhóm thanh ghi đa năng
Còn gọi là nhóm thanh ghi công dụng chung (General purpose registers)
Có thể dùng ½ mỗi thanh ghi như những thanh ghi độc lập
8086/8088 tự động sử dụng một số thanh ghi đa dụng vào một số mục đích cụ thể
bangtqh@utc2.edu.vn Chương 6 - Lập trình hợp ngữ 7
Nhóm thanh ghi đoạn
CS: chứa địa chỉ cơ sở đoạn mã lệnh của chương trình đang chạy
DS: chứa địa chỉ đoạn của vùng dữ liệu chương trình đang thực hiện
ES: (Extra segment) Chứa địa chỉ đoạn dữ liệu bổ sung (vùng chứa biến của chương trình)
SS: Chứa địa chỉ bộ nhớ stack của chương trình đang chạy
bangtqh@utc2.edu.vn Chương 6 - Lập trình hợp ngữ 8
Thanh ghi con trỏ và chỉ số
IP: (instruction pointer): luôn chỉ đến địa chỉ lệnh sắp được thi hành trong bộ do do CS đang trỏ tới Cặp CS:IP chứa địa chỉ vật lý của lệnh trong bộ nhớ
SP: luôn kết hợp với SS tạo thành cặp SS:SP để trỏ tới địa chỉ vùng nhớ stack của chương trình.
SI và DI (Source index và Destination index): được thiết kế chuyên dụng trong các thao tác vận chuyển số liệu. Cặp DS:SI trỏ tới dữ liệu nguồn, ES:DI trỏ tới dữ liệu đích
bangtqh@utc2.edu.vn Chương 6 - Lập trình hợp ngữ 9
Thanh ghi cờ của 8086/8088
15 14 13 12 11 10 9 8 7 6
X X X X OF DF IF TF SF ZF
5 4 3 2 1 0
X AF X PF X CF
bangtqh@utc2.edu.vn Chương 6 - Lập trình hợp ngữ 10
...
- tailieumienphi.vn
nguon tai.lieu . vn