Vài điểm lưu ý bộ vi xử lý 8086
Số trang: 14
Loại file: doc
Dung lượng: 1.52 MB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Thuật ngữ X86 dùng để chỉ tới kiến trúc tập lệnh của dòng vi xử lý 8086 của Intel. 8086 được Intel đưa ra năm 1978.Intel xem dòng phát triển 8086 là IA-32. Kiến trúc x86 này rất phổ biến cho các thế hệ máy tính cá nhân đang hiện hữu trong nhiều gia đình. Kiến trúc x86 gần như chiếm toàn bộ thị phần máy tính cá nhân,máy workstation và cả server thậm chí siêu máy tính. Vì tính phổ biến của nó và hỗ trợ tài liệu rất tốt từ Intel nên x86 được rất nhiều lập trình...
Nội dung trích xuất từ tài liệu:
Vài điểm lưu ý bộ vi xử lý 8086 Bộ thanh ghi trong 8086 Các thanh ghi trong bộ vi xử lí 8086 đều là các thanh ghi 16 bit và đ ược chia thành cácnhóm như sau: - Các thanh ghi công dụng chung AX (accumulator), BX (base), CX (counter), DX (data): có thể được truy xuất độc lập như 2 thanh ghi 8 bit : AH và AL, BH và BL, CH và CL, DH và DL. 15 8 7 0 15 8 7 0 AX CX AH AL CH CL 15 8 7 0 15 8 7 0 BX DX BH BL DH DL - Các thanh ghi con trỏ và chỉ mục (xem chi tiết ở các phần sau) SP (Stack Pointer), BP (Base Pointer): con trỏ dùng khi làm việc với stack SI (Source Index), DI (Destination Index): chỉ số mảng khi xử lí mảng (chuỗi) - Các thanh ghi phân đoạn CS (Code Segment), DS (Data Segment), ES (Extra data Segment), SS (Stack Segment): tương ứng lưu địa chỉ phân đoạn mã lệnh, phân đoạn dữ liệu, phân đo ạn dữ liệu bổ sung, phân đoạn ngăn xếp. Địa chỉ phân đoạn này sẽ được kết hợp với địa chỉ offset để truy xuất ô nhớ. (xem chi tiết ở các phần sau) - Các thanh ghi con trỏ lệnh và trạng thái IP (Intruction Pointer): thanh ghi chứa địa chỉ offset của lệnh k ế ti ếp c ần th ực hiện. Thanh ghi này không thể được truy xuất trực tiếp. FLAGS: thanh ghi cờ trạng thái, dùng để chứa các bit mô tả trạng thái c ủa lệnh vừa được thực hiện, hoặc chứa các bit điều khiển cần thiết lập trước khi gọi lệnh. Bao gồm các bit cờ sau đây: (xem chi tiết ở các phần sau) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 O D I T S Z A P C CF (Carry Flag): bật khi phép tính vừa thực hiện có sử dụng bit nhớ PF (Parrity Flag): bật khi kết quả của phép tính vừa thực hiện có chẵn bit 1 AF (Auxilary Flag): bật khi phép tính vừa thực hiện có sử dụng bit nhớ phụ ZF (Zero Flag): bật khi kết quả của phép tính vừa thực hiện là 0 SF (Sign Flag): bật khi kết quả của phép tính vừa thực hiện có bit dấu bật TF (Trace Flag): bật để chuyển sang chế độ chạy từng bước IF (Interrupt Flag): bật để cho phép các ngắt xảy ra DF (Direction Flag): bật để chọn chế độ giảm chỉ số tự động khi làm việc với mảng OF (Overflow Flag): bật khi phép tính vừa thực hiện gây ra tràn số 1 Tổ chức bộ nhớ trong 8086Địa chỉ vật lí. Bus địa chỉ có độ rộng 20 bit, nếu đánh địa chỉ tuần tự tăng dần cho các ô nhớ: số lượng tối đa các ô nhớ có thể được đánh địa chỉ là 2^20 ô nh ớ.Mỗi ô nhớ có kích thước 1 byte kích thước bộ nhớ tối đa có thể truy cập là 2^20 byte = 1 MB. Khi đó, địa chỉ của một ô nhớ là một con số 20 bit (ho ặc 5 ch ữ số hex), g ọi là đ ịa ch ỉ v ậtlí.Địa chỉ logic Các thanh ghi trong 8086 đều là 16 bit. Nếu dùng các thanh ghi này đ ể l ưu tr ữ đ ịa ch ỉ20bit thì không tiện lợi. Người ta đã tìm cách gi ảm số bit dùng đ ể đánh đ ịa ch ỉ xu ống còn16bit. Ý tưởng được sử dụng là: thông thường, các dữ liệu mà m ột ch ương trình c ần truy c ậpnằm gần nhau và tạo thành một khối không lớn lắm; như vậy, n ếu ta đánh địa ch ỉ tương đ ối(gọi là offset) trong một khối thì số lượng bit dùng để đánh địa chỉ sẽ giảm xuống. Bộ nhớ được chia thành các khối 64KB, gọi là segment, các khối này không xếp tuần tựcạnh nhau mà xếp gối đầu, với khoảng cách 16byte. Nghĩa là, cứ 16 byte thì lại bắt đầu mộtsegment mới. Như vậy, số lượng segment trong 1MB bộ nhớ là 1MB / 16byte = 65536 = 2^16.Do đó, để đánh địa chỉ segment ta cũng cần 16 bit. Trong phạm vi một segment 64KB (=65536byte), chỉ cần dùng 16 bit làm địa chỉ offset để xác định một ô nhớ. (Xem Hình 1. Tổ chức bộnhớ kiểu segment - offset) Tóm lại, trong cách đánh địa chỉ logic, m ỗi ô nh ớ có địa chỉ là một cặp (segment:offset),tổng cộng 32bit. Tuy nhiên, như đã nói ở trên, các dữ liệu có liên quan trong b ộ nh ớ th ường ởgần nhau trong một khối segment nên ta có thể không cần xác định tường minh địa chỉsegment mà chỉ cần ngầm hiểu. Khi bắt đầu làm việc với m ột segment nào thì ta s ẽ dùng mộtthanh ghi để ghi lại địa chỉ segment đó. Thanh ghi này sẽ được dùng chung cho tất cả cácphép truy xuất bộ nhớ tiếp theo. Và như thế, trong các phép truy xuất b ộ nh ớ ti ếp theo, ch ỉcần dùng thêm 16 bit địa chỉ offset là đ ...
Nội dung trích xuất từ tài liệu:
Vài điểm lưu ý bộ vi xử lý 8086 Bộ thanh ghi trong 8086 Các thanh ghi trong bộ vi xử lí 8086 đều là các thanh ghi 16 bit và đ ược chia thành cácnhóm như sau: - Các thanh ghi công dụng chung AX (accumulator), BX (base), CX (counter), DX (data): có thể được truy xuất độc lập như 2 thanh ghi 8 bit : AH và AL, BH và BL, CH và CL, DH và DL. 15 8 7 0 15 8 7 0 AX CX AH AL CH CL 15 8 7 0 15 8 7 0 BX DX BH BL DH DL - Các thanh ghi con trỏ và chỉ mục (xem chi tiết ở các phần sau) SP (Stack Pointer), BP (Base Pointer): con trỏ dùng khi làm việc với stack SI (Source Index), DI (Destination Index): chỉ số mảng khi xử lí mảng (chuỗi) - Các thanh ghi phân đoạn CS (Code Segment), DS (Data Segment), ES (Extra data Segment), SS (Stack Segment): tương ứng lưu địa chỉ phân đoạn mã lệnh, phân đoạn dữ liệu, phân đo ạn dữ liệu bổ sung, phân đoạn ngăn xếp. Địa chỉ phân đoạn này sẽ được kết hợp với địa chỉ offset để truy xuất ô nhớ. (xem chi tiết ở các phần sau) - Các thanh ghi con trỏ lệnh và trạng thái IP (Intruction Pointer): thanh ghi chứa địa chỉ offset của lệnh k ế ti ếp c ần th ực hiện. Thanh ghi này không thể được truy xuất trực tiếp. FLAGS: thanh ghi cờ trạng thái, dùng để chứa các bit mô tả trạng thái c ủa lệnh vừa được thực hiện, hoặc chứa các bit điều khiển cần thiết lập trước khi gọi lệnh. Bao gồm các bit cờ sau đây: (xem chi tiết ở các phần sau) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 O D I T S Z A P C CF (Carry Flag): bật khi phép tính vừa thực hiện có sử dụng bit nhớ PF (Parrity Flag): bật khi kết quả của phép tính vừa thực hiện có chẵn bit 1 AF (Auxilary Flag): bật khi phép tính vừa thực hiện có sử dụng bit nhớ phụ ZF (Zero Flag): bật khi kết quả của phép tính vừa thực hiện là 0 SF (Sign Flag): bật khi kết quả của phép tính vừa thực hiện có bit dấu bật TF (Trace Flag): bật để chuyển sang chế độ chạy từng bước IF (Interrupt Flag): bật để cho phép các ngắt xảy ra DF (Direction Flag): bật để chọn chế độ giảm chỉ số tự động khi làm việc với mảng OF (Overflow Flag): bật khi phép tính vừa thực hiện gây ra tràn số 1 Tổ chức bộ nhớ trong 8086Địa chỉ vật lí. Bus địa chỉ có độ rộng 20 bit, nếu đánh địa chỉ tuần tự tăng dần cho các ô nhớ: số lượng tối đa các ô nhớ có thể được đánh địa chỉ là 2^20 ô nh ớ.Mỗi ô nhớ có kích thước 1 byte kích thước bộ nhớ tối đa có thể truy cập là 2^20 byte = 1 MB. Khi đó, địa chỉ của một ô nhớ là một con số 20 bit (ho ặc 5 ch ữ số hex), g ọi là đ ịa ch ỉ v ậtlí.Địa chỉ logic Các thanh ghi trong 8086 đều là 16 bit. Nếu dùng các thanh ghi này đ ể l ưu tr ữ đ ịa ch ỉ20bit thì không tiện lợi. Người ta đã tìm cách gi ảm số bit dùng đ ể đánh đ ịa ch ỉ xu ống còn16bit. Ý tưởng được sử dụng là: thông thường, các dữ liệu mà m ột ch ương trình c ần truy c ậpnằm gần nhau và tạo thành một khối không lớn lắm; như vậy, n ếu ta đánh địa ch ỉ tương đ ối(gọi là offset) trong một khối thì số lượng bit dùng để đánh địa chỉ sẽ giảm xuống. Bộ nhớ được chia thành các khối 64KB, gọi là segment, các khối này không xếp tuần tựcạnh nhau mà xếp gối đầu, với khoảng cách 16byte. Nghĩa là, cứ 16 byte thì lại bắt đầu mộtsegment mới. Như vậy, số lượng segment trong 1MB bộ nhớ là 1MB / 16byte = 65536 = 2^16.Do đó, để đánh địa chỉ segment ta cũng cần 16 bit. Trong phạm vi một segment 64KB (=65536byte), chỉ cần dùng 16 bit làm địa chỉ offset để xác định một ô nhớ. (Xem Hình 1. Tổ chức bộnhớ kiểu segment - offset) Tóm lại, trong cách đánh địa chỉ logic, m ỗi ô nh ớ có địa chỉ là một cặp (segment:offset),tổng cộng 32bit. Tuy nhiên, như đã nói ở trên, các dữ liệu có liên quan trong b ộ nh ớ th ường ởgần nhau trong một khối segment nên ta có thể không cần xác định tường minh địa chỉsegment mà chỉ cần ngầm hiểu. Khi bắt đầu làm việc với m ột segment nào thì ta s ẽ dùng mộtthanh ghi để ghi lại địa chỉ segment đó. Thanh ghi này sẽ được dùng chung cho tất cả cácphép truy xuất bộ nhớ tiếp theo. Và như thế, trong các phép truy xuất b ộ nh ớ ti ếp theo, ch ỉcần dùng thêm 16 bit địa chỉ offset là đ ...
Tìm kiếm theo từ khóa liên quan:
phần cứng máy tính công nghệ thông tin vi xử lý vi xử lý 8086 vi xử lý intel kỹ thuật máy tínhGợi ý tài liệu liên quan:
-
50 trang 495 0 0
-
52 trang 426 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 309 0 0 -
Đề cương chi tiết học phần Vi xử lý
12 trang 294 0 0 -
74 trang 293 0 0
-
96 trang 289 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 288 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 276 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 270 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0