Bộ vi xử lý 8088/8086 và lập trình hợp ngữ x86
Số trang: 13
Loại file: doc
Dung lượng: 189.00 KB
Lượt xem: 18
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:
Thanh ghi (Register) Là các phần tử nhớ đặc biệt bên trong bộ vi xử lý. các thanh ghi luôn có kích thước bằng nhau, kích thước này cũng chính là độ
Nội dung trích xuất từ tài liệu:
Bộ vi xử lý 8088/8086 và lập trình hợp ngữ x86 Bộ vi xử lý 8088/8086 và lập trình hợp ngữ x863.1 Thanh ghi (Register) Là các phần tử nhớ đặc biệt bên trong bộ vi xử lý. các thanh ghi luôn có kích thước bằng nhau, kích thước này cũng chính là độ rộng của data bus bên trong bộ xử lý. 8088 là bộ vi xử lý 16 bit do đó các thanh ghi của 8088 đều có kích thước 16 bit. Một số tác vụ đặc biệt như nhân hay chia, kết quả bắt buộc phải đặt trong thanh ghi Một số thanh ghi chỉ dùng để xác định địa chỉ cho bộ xử lý Các tác vụ trên thanh ghi nhanh hơn nhiều so với các tác vụ trên bộ nhớ Bộ vi xử lý 8088 có 14 thanh ghi 16 bit chia thành nhóm theo chức năng như sau: Nhóm thanh ghi đa dụng (General registers): F E D C B A 9 8 7 6 5 4 3 2 1 0 AX AH AL BX BH BL CX CH CL DX DH DL Nhóm thanh ghi chỉ mục và con trỏ (Index & Pointer registers): F E D C B A 9 8 7 6 5 4 3 2 1 0 SI SI DI DI BP BP SP SP Nhóm thanh ghi phân đoạn (Segment registers): F E D C B A 9 8 7 6 5 4 3 2 1 0 DS DS ES ES SS SS CS CS Thanh ghi cờ hiệu: F E D C B A 9 8 7 6 5 4 3 2 1 0 Flag O D I T S Z A P C Thanh ghi contrỏ lệnh (Instruction Pointer) : F E D C B A 9 8 7 6 5 4 3 2 1 0 Flag IP 3.1.1 Nhóm thanh ghi dữ liệu (Data registers): AX,BX,CX,DX hay là AH,AL,BH,BL,CH,CL,DH,DL Đóng vai trò chủ yếu như là các phần tử nhớ cơ bản trong các quá trình tính toán. Tham gia vào các tác vụ tính toán của bộ xử lý. Có thể sử dụng như là một thanh ghi 16 bit hoặc hai thanh ghi 8 bit nối liền nhau. 3.1.2 Nhóm thanh ghi chỉ mục và con trỏ (Index & Pointer registers): SI,DI,BP,SP Có thể sử dụng như các thanh ghi đa dụng, ngoài ra còn đóng vai trò làm chỉ mục khi xác dịnh địa chỉ theo offset của bộ xử lý. - SI và DI là hai thanh ghi chỉ mục để thực hiện các tác vụ chuỗi - BP và SP là hai thanh ghi con trỏ để thao tác trên cấu trúc STACK 3.1.3 Nhóm thanh ghi phân đoạn (Segment registers): DS,ES,SS,CS Không thể tham gia vào các tác vụ tính toán, thường chỉ dùng để xác định các địa chỉ phân đoạn. - DS: Data segment register - ES: Extra segment register - SS: Stack segment register - CS: Code segment register 3.1.4 Thanh ghi con trỏ lệnh (Instruction Pointer register): IP Không thể tham gia vào các tác vụ tính toán, không thể gán giá trị trực tiếp, cùng với CS tạo thành địa chỉ mã lệnh sẽ thực hiện của CPU 3.1.5 Thanh ghi cờ hiệu (Flag register): Flag Không thể tham gia vào các tác vụ tính toán, không thể gán giá trị trực tiếp, chỉ dùng để ghi nhận hoặc chỉ định các trạng thái làm việc của CPU.3.2 Địa chỉ (Memory address) Các lệnh của bộ xử lý thao tác trực tiếp lên các đối tượng chủ yếu là thanh ghi và bộ nhớ . Các thanh ghi dược xác định bằng tên , các phần tử thuộc bộ nhớ được xác định bằng địa chỉ. Các bộ xử lý thuộc dòng họ x86 xác định địa chỉ bằng hai giá trị 16 bit gọi là segment và offset. Địa chỉ vật lý tương ứng được tính theo công thức : Memory_Address = Segment * 10h + Offset 20 bit 16 bit 16 bit Một địa chỉ vật lý có thể biểu diễn thành nhiều cặp segment và offset khác nhau. Thí dụ: 0040:006C 0000:046C 0020:026C là các biểu diễn của dịa chỉ vật lý 20 bit 00046C. 3.2.1 Segment: Segment là một đoạn bộ nhớ có kích thước tối đa 64KB (16 bit offset) và có thể bắt đầu tại các địa chỉ chia chẵn cho 16 (10h) trên toàn bộ vùng nhớ 1MB (20 bit). Trong hầu hết các tác vụ của bộ xử lý 8088, segment dược xác định gián tiếp qua các thanh ghi segment DS , ES , SS , CS ...
Nội dung trích xuất từ tài liệu:
Bộ vi xử lý 8088/8086 và lập trình hợp ngữ x86 Bộ vi xử lý 8088/8086 và lập trình hợp ngữ x863.1 Thanh ghi (Register) Là các phần tử nhớ đặc biệt bên trong bộ vi xử lý. các thanh ghi luôn có kích thước bằng nhau, kích thước này cũng chính là độ rộng của data bus bên trong bộ xử lý. 8088 là bộ vi xử lý 16 bit do đó các thanh ghi của 8088 đều có kích thước 16 bit. Một số tác vụ đặc biệt như nhân hay chia, kết quả bắt buộc phải đặt trong thanh ghi Một số thanh ghi chỉ dùng để xác định địa chỉ cho bộ xử lý Các tác vụ trên thanh ghi nhanh hơn nhiều so với các tác vụ trên bộ nhớ Bộ vi xử lý 8088 có 14 thanh ghi 16 bit chia thành nhóm theo chức năng như sau: Nhóm thanh ghi đa dụng (General registers): F E D C B A 9 8 7 6 5 4 3 2 1 0 AX AH AL BX BH BL CX CH CL DX DH DL Nhóm thanh ghi chỉ mục và con trỏ (Index & Pointer registers): F E D C B A 9 8 7 6 5 4 3 2 1 0 SI SI DI DI BP BP SP SP Nhóm thanh ghi phân đoạn (Segment registers): F E D C B A 9 8 7 6 5 4 3 2 1 0 DS DS ES ES SS SS CS CS Thanh ghi cờ hiệu: F E D C B A 9 8 7 6 5 4 3 2 1 0 Flag O D I T S Z A P C Thanh ghi contrỏ lệnh (Instruction Pointer) : F E D C B A 9 8 7 6 5 4 3 2 1 0 Flag IP 3.1.1 Nhóm thanh ghi dữ liệu (Data registers): AX,BX,CX,DX hay là AH,AL,BH,BL,CH,CL,DH,DL Đóng vai trò chủ yếu như là các phần tử nhớ cơ bản trong các quá trình tính toán. Tham gia vào các tác vụ tính toán của bộ xử lý. Có thể sử dụng như là một thanh ghi 16 bit hoặc hai thanh ghi 8 bit nối liền nhau. 3.1.2 Nhóm thanh ghi chỉ mục và con trỏ (Index & Pointer registers): SI,DI,BP,SP Có thể sử dụng như các thanh ghi đa dụng, ngoài ra còn đóng vai trò làm chỉ mục khi xác dịnh địa chỉ theo offset của bộ xử lý. - SI và DI là hai thanh ghi chỉ mục để thực hiện các tác vụ chuỗi - BP và SP là hai thanh ghi con trỏ để thao tác trên cấu trúc STACK 3.1.3 Nhóm thanh ghi phân đoạn (Segment registers): DS,ES,SS,CS Không thể tham gia vào các tác vụ tính toán, thường chỉ dùng để xác định các địa chỉ phân đoạn. - DS: Data segment register - ES: Extra segment register - SS: Stack segment register - CS: Code segment register 3.1.4 Thanh ghi con trỏ lệnh (Instruction Pointer register): IP Không thể tham gia vào các tác vụ tính toán, không thể gán giá trị trực tiếp, cùng với CS tạo thành địa chỉ mã lệnh sẽ thực hiện của CPU 3.1.5 Thanh ghi cờ hiệu (Flag register): Flag Không thể tham gia vào các tác vụ tính toán, không thể gán giá trị trực tiếp, chỉ dùng để ghi nhận hoặc chỉ định các trạng thái làm việc của CPU.3.2 Địa chỉ (Memory address) Các lệnh của bộ xử lý thao tác trực tiếp lên các đối tượng chủ yếu là thanh ghi và bộ nhớ . Các thanh ghi dược xác định bằng tên , các phần tử thuộc bộ nhớ được xác định bằng địa chỉ. Các bộ xử lý thuộc dòng họ x86 xác định địa chỉ bằng hai giá trị 16 bit gọi là segment và offset. Địa chỉ vật lý tương ứng được tính theo công thức : Memory_Address = Segment * 10h + Offset 20 bit 16 bit 16 bit Một địa chỉ vật lý có thể biểu diễn thành nhiều cặp segment và offset khác nhau. Thí dụ: 0040:006C 0000:046C 0020:026C là các biểu diễn của dịa chỉ vật lý 20 bit 00046C. 3.2.1 Segment: Segment là một đoạn bộ nhớ có kích thước tối đa 64KB (16 bit offset) và có thể bắt đầu tại các địa chỉ chia chẵn cho 16 (10h) trên toàn bộ vùng nhớ 1MB (20 bit). Trong hầu hết các tác vụ của bộ xử lý 8088, segment dược xác định gián tiếp qua các thanh ghi segment DS , ES , SS , CS ...
Tìm kiếm theo từ khóa liên quan:
Bộ vi xử lý 8088/8086 lập trình hợp ngữ x86 ngôn ngữ lập trình Thanh ghi vi điều khiểnGợi ý tài liệu liên quan:
-
Giáo trình Vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Ninh Thuận
127 trang 263 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 261 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 251 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 251 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 229 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 213 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 204 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 192 0 0 -
Báo cáo môn học vi xử lý: Khai thác phần mềm Proteus trong mô phỏng điều khiển
33 trang 177 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 171 0 0