Bài giảng Lập trình hợp ngữ: Intel 8086 - Nguyễn Duy Phúc
lượt xem 69
download
Nội dung Bài giảng Lập trình hợp ngữ Intel 8086 - Nguyễn Duy Phúc nhằm giúp bạn nắm bắt khái niệm, tương đương logic giữa các ngôn ngữ, viết và chạy chương trình hợp ngữ, biểu diễn dữ liệu trong bộ nhớ, giới thiệu CPU Intel 8086/8088,... Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hợp ngữ: Intel 8086 - Nguyễn Duy Phúc
- LẬP TRÌNH HỢP NGỮ Intel 8086 Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 08/2013
- Khái niệm Ngôn ngữ máy (ML - Machine Language) • CPU trực tiếp “hiểu” và thực thi được • Dạng nhị phân Hợp ngữ (Assembly Language) • Thay thế lệnh hợp ngữ dạng nhị phân bằng từ tiếng Anh Ngôn ngữ cấp cao (High Level Language) • Gần gũi với con người ASM và HLL phải dịch về ML để thực hiện
- Tương đương logic giữa các ngôn ngữ ASM ML HLL ASM ML ASM ML
- Tại sao phải lập trình hợp ngữ? Chương trình nhanh, nhỏ gọn Khai thác trực tiếp thiết bị Làm việc ở cấp độ thấp • Thiết kế máy tính • Viết trình dịch (compiler), trình điều khiển thiết bị (driver) • Reverse Engineering Lập trình hệ thống nhúng (embedded system) • Tài nguyên hạn chế • Tối ưu phần mềm
- Viết và chạy chương trình hợp ngữ Chương trình Hợp dịch Chương trình ngôn nguồn hợp ngữ ngữ máy (plain text, .asm) (nhị phân) Turbo Assembler, Microsoft Assembler, Netwide Assembler,… Text editor, IDE .EXE, .COM, …
- Biểu diễn dữ liệu trong bộ nhớ Byte (8 bit) • Giá trị: 0..255 hoặc -128..127 Word (16 bit) • Giá trị: 0..65535 hoặc -32768..32767 • Lưu trữ trong bộ nhớ: byte cao lưu địa chỉ cao, byte thấp lưu địa chỉ thấp • Ví dụ: (20400)10 = (4FB0)16 Địa chỉ Giá trị ô nhớ i B0 i+1 4F
- Biểu diễn dữ liệu trong bộ nhớ (2) Ký tự • Cách viết: ‘a’, “a” • Lưu trong bộ nhớ dạng mã ASCII 8 bit • Ví dụ: ‘a’ 97 Chuỗi • Cách viết: ‘abc’, “abc” • Lưu trong bộ nhớ dạng dãy ký tự • Ví dụ: “abc” 97 98 99
- Biểu diễn dữ liệu trong bộ nhớ (3) Số BCD • Dùng 8 bit hoặc 4 bit biểu diễn cho 1 ký số hệ 10 • Ví dụ: (15)10 (0001 0101)BCD-4bit hoặc (00000001 00000101)BCD-8bit Số nguyên có dấu biểu diễn theo dạng bù 2 Qui ước Hệ Cách viết 10 255, 255d, 255D 2 10011b, 10011B 16 3Fh, 3FH, 0C8h
- Giới thiệu CPU Intel 8086/8088 Được Intel sản xuất năm 1978 Sử dụng trong máy IBM-PC năm 1981 Phổ biến, phát triển thành họ kiến trúc x86 Bus địa chỉ 20 bit CPU 8086 Bộ nhớ 16 bit Bus dữ liệu 16 bit
- Tổ chức bộ nhớ Địa chỉ 20 bit Bộ nhớ tối đa 1MB Tổ chức bộ nhớ thành từng đoạn (segment), mỗi đoạn 64KB (216) Lập trình truy xuất ô nhớ theo địa chỉ logic • Dạng: segment:offset • Segment, offset có kích thước 16 bit, viết dạng hex Chuyển từ địa chỉ logic địa chỉ vật lý (20bit) • Segment * 16 + offset
- Tổ chức bộ nhớ (2) Ví dụ: địa chỉ A4FB:4872 • A4FB * 16 (10h) A4FB0 • A4FB0 + 4872 = A9822h (20 bit) Các đoạn có thể chồng lên nhau, cách nhau theo bội số 16 (0000:0000, 0001:0000,…) Một địa chỉ vật lý có thể có nhiều địa chỉ logic (thuộc nhiều đoạn) Ví dụ: 1256:000A, 1240:016A có cùng địa chỉ vật lý là 1256Ah
- Tổ chức thanh ghi Có 14 thanh ghi 16 bit Nhóm thanh ghi đoạn: CS, DS, SS, ES • CS (Code Segment): chứa địa chỉ segment của đoạn mã chương trình đang thực hiện • DS (Data Segment): chứa địa chỉ segment đoạn dữ liệu chính của chương trình • SS (Stack Segment): chứa địa chỉ segment đoạn stack của chương trình đang thực hiện • ES (Extra Segment): đoạn dữ liệu bổ sung
- Tổ chức thanh ghi (2) Nhóm thanh ghi đa dụng: AX, BX, CX, DX • AX (Accumulator) - Thanh ghi tích lũy: thường lưu kết quả của các lệnh tính toán • BX (Base) – Thanh ghi cơ sở: thường đùng định vị địa chỉ offset khi truy xuất bộ nhớ • CX (Count) – Thanh ghi đếm: thường dùng xác định số lần lặp trong các lệnh lặp • DX (Data) – Thanh ghi dữ liệu: thường dùng lưu dữ liệu trong các lệnh tính toán
- Tổ chức thanh ghi (3) Mỗi thanh ghi đa dụng có thể tách thành 2 thanh ghi con 8 bit AX CX AH AL CH CL BX DX BH BL DH DL
- Tổ chức thanh ghi (4) Nhóm thanh ghi con trỏ và chỉ mục: SP, BP, SI, DI • SP (Stack Pointer): địa chỉ offset của phần tử trên đỉnh stack • BP (Base Pointer): dùng định vị offset khi truy xuất stack • SI (Source Index): dùng định vị offset chuỗi nguồn trong các lệnh về chuỗi • DI (Destination Index): dùng định vị offset chuỗi đích trong các lệnh về chuỗi
- Tổ chức thanh ghi (5) Thanh ghi con trỏ lệnh: IP (Instruction Pointer) • Chứa địa chỉ offset của lệnh sẽ được CPU thực hiện • Được tự động thay đổi để trỏ đến lệnh kế tiếp • CS:IP segment:offset của lệnh kế tiếp được CPU thực hiện Thanh ghi cờ hiệu (Flag Register) • Phản ánh trạng thái thực hiện lệnh của CPU • Có 9 cờ (9 bit)
- Tổ chức thanh ghi (6) Các cờ của thanh ghi cờ hiệu OF DF IF TF SF ZF AF PF CF • Overflow, Direction, Interrupt, Trap, Sign, Zero, Auxiliary carry, Parity, Carry Lệnh bật cờ • ST STC, STD,… Lệnh xóa cờ • CL CLC, CLD,...
- Tổ chức thanh ghi (7) AH AL AX BH BL BX Nhóm thanh ghi đa dụng CH CL CX DH DL DX CS DS Nhóm thanh ghi đoạn SS ES SP Nhóm thanh ghi con trỏ BP SI Nhóm thanh ghi chỉ mục DI IP Thanh ghi con trỏ lệnh Flag Thanh ghi cờ hiệu
- Các kiểu định vị Định vị • Cách thức CPU xác định vị trí lưu trữ giá trị của toán hạng trong câu lệnh Các kiểu toán hạng • Toán hạng hằng/tức thì • Toán hạng thanh ghi • Toán hạng bộ nhớ
- Các kiểu định vị (2) Định vị hằng • Giá trị của toán hạng có sẵn trong lệnh • Ví dụ: MOV AX, 100 ; AX = 100 Định vị thanh ghi • Giá trị của toán hạng chứa trong một thanh ghi • Ví dụ: MOV AX, BX ; AX = BX MOV BH, DL ; BH = DL
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Tài liệu: Lập trình hợp ngữ MIPS
10 p | 1145 | 226
-
Chương III : Lập trình hợp ngữ và tóm tắt tập lệnh
10 p | 497 | 218
-
Tài liệu: Lập trình hợp ngữ 8051
19 p | 594 | 198
-
Giáo trình về Vi điều khiển - Chương 2: Lập trình hợp ngữ trên vi điều khiển MCS-51
22 p | 343 | 165
-
Bài giảng Vi xử lý và Lập trình hợp ngữ
54 p | 388 | 100
-
Lập trình hợp ngữ MISP
9 p | 550 | 57
-
Tài Liệu Lập Trình Hợp Ngữ ĐHQG Hà Nội
13 p | 179 | 51
-
Bài giảng Kỹ thuật vi xử lý (TS.Phạm Hoàng Duy) - Chương 4: Lập trình hợp ngữ với 8088
17 p | 234 | 33
-
Bài giảng Kiến trúc máy tính - Chương 5: Lập trình hợp ngữ (Assembly Language)
22 p | 246 | 22
-
Bài giảng Lập trình hợp ngữ
63 p | 105 | 22
-
Bài giảng Lập trình Assembly: Chương 2 - Nguyễn Văn Thọ
9 p | 158 | 21
-
Bài giảng môn học Kiến trúc máy tính - Lập trình hợp ngữ
64 p | 93 | 18
-
Bài giảng Cấu trúc máy tính: Chương 5 - Lập trình hợp ngữ với 8088
154 p | 103 | 7
-
Bài giảng Lập trình với hợp ngữ - GV. Lê Minh Triết
0 p | 99 | 3
-
Đề cương chi tiết bài giảng Lập trình Java
66 p | 33 | 3
-
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 5: Lập trình hợp ngữ LC-3 (GV. Nguyễn Nhật Nam)
35 p | 46 | 3
-
Bài giảng Lập trình: Chương 3 - Vũ Song Tùng
98 p | 33 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn