Bài giảng Hợp ngữ - Nguyễn Minh Tuấn - Đại cương về hợp ngữ
1.1. TổChức BộNhớCPU Intel 80x86
1.2. TổChứcThanh Ghi
1.3. Máy Ngữ& Hợp Ngữ
1.4. Cấu Trúc Chương Trình Hợp Ngữ
1.5. Một SốLệnh Đơn Giản
1.6. Tạo Chương Trình Hợp Ngữ
HỢP NGỮ Nguyễn Minh Tuấn NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 2 Tài Liệu Tham Khảo 1. Peter Norton's Assembly Language Book for The IBM PC Peter Norton's & Johns Socha - Prentice Hall Press - 1986 2. Programmer's Guide to The IBM PC Peter Norton - Microsoft Press 3. Turbo Assembler Bible Gary Syck - SAMS – 1991 4. Assembly Programming Language & IBM / PC Ythayu & Charles Marut 5. The Pentium Microprocessor James L.Antonakos – Prentice-Hall, Inc. - 1997 NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 3 HỢP NGỮ 1. Đại Cương về Hợp Ngữ 2. Kiểu Định Vị và Cờ 3. Lệnh Nhảy và Lặp 4. Ngăn Xếp và Thủ Tục 5. Nhập Xuất Số Hệ 2/16 6. Nhập Xuất Số Hệ 10 7. Lệnh Chuỗi 8. Bàn Phím và Màn Hình NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 4 1. Đại Cương về Hợp Ngữ 1.1. Tổ Chức Bộ Nhớ CPU Intel 80x86 1.2. Tổ ChứcThanh Ghi 1.3. Máy Ngữ & Hợp Ngữ 1.4. Cấu Trúc Chương Trình Hợp Ngữ 1.5. Một Số Lệnh Đơn Giản 1.6. Tạo Chương Trình Hợp Ngữ NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 5 1.1. TổChứcBộ Nhớ CPU Intel z Đơn vị nhớ: Byte. z CPU Số bit Dung lượng nhớ địa chỉ – 8086/8088 20 bit 1 MB – 80286 24 bit 16 MB – 80386 → 32 bit 4096 MB (4 GB) z Chế độ hoạt động: – Thực: bộ nhớ → 1 MB (8086/88→ ) – Bảo vệ: bộ nhớ → 16MB (286), 4GB (386 →) Mặc nhiên NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 6 1.1. TổChứcBộNhớ CPU Intel (tt) z 1134:1023 → tuyệt đối: 1134 → 11340 1023→ 01023 12363 z 4A37B → – Địa chỉ ô tương ứng với đoạn 40FF: 4A37B - 40FF0 0938B → địa chỉ ô = 938B – Địa chỉ đoạn tương ứng với ô 123B: 4A37B -0 123B 4 9140 → địa chỉ đoạn = 4914 NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 7 1.2. Tổ Chức Thanh Ghi z Gồm 4 nhóm: – Thanh ghi đoạn – Thanh ghi đa dụng – Thanh ghi con trỏ và chỉ số – Thanh ghi cờ và con trỏ lệnh. NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 8 1.3. Máy Ngữ & Hợp Ngữ z Lệnh Dạng máy ngữ Dạng hợp ngữ 1 B4 02 MOV AH, 02h 2 80 C2 30 ADD DL, 30h 3 50 PUSH AX z Dịch chương trình: Trình nguồn (hợp ngữ) Trình đích (máy ngữ) Trình hợp dịch (Assembly language) (Assembler) (Machine language) NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 9 1.4. CấuTrúc ChươngTrình Hợp Ngữ z Tổ chức chương trình đơn giản .MODEL SMALL ; Kiểu chương trình .STACK ; Khai báo ngăn xếp .DATA ; Phần dữ liệu ………………… .CODE ; Phần lệnh ………………… END ; Lệnh cuối cùng NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 10 1.5. Một Số Lệnh Đơn Giản z Cách viết số: – Thập phân: 123, -54, 123d – Thập lục: 12Ah, 0Ah – Nhị phân: 1011b z Cách viết ký tự / chuỗi: – ‘A’, “A”, ‘Hello!’, “Hi!” – ”Don’t forget me!”, ‘”Forget me not!”’ – ’Don’’t forget me!’ NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 11 1.5. Một Số Lệnh Đơn Giản (tt) z Khai báo biến / vùng nhớ: Tên DB Trị1, Trị2,… ; Kiểu Byte Tên DW Trị1, Trị2,… ; Kiểu Word z Ví dụ: BVar1 DB 5 BVar2 DB ? BArr DB 10, 11, 12 WVar1 DW 10 WVar2 DW 1234h Str1 DB ‘ABC’ Str2 DB 13, 10, ‘Hello!’, 10, ‘$’ Sco DB 6 DUP(0) NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 12 1.5. Một Số Lệnh Đơn Giản (tt) z Định nghĩa hằng: Tên EQU Hằng zVí dụ: CR EQU 0Dh LF EQU 0Ah MESS EQU ‘Du lieu nhap sai!’ STR1 DB CR, LF, MESS, ‘$’ NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 13 1.5. Một Số Lệnh Đơn Giản (tt) $!OLLEHS DS:DX MOV AH, 9 MOV BX, SEG S MOV DS, BX MOV DX, OFFSET S INT 21h HELLO! S DB ‘HELLO!$’ NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 14 1.6. Tạo Ch.Trình Hợp Ngữ z Qui trình: 1. Soạn chương trình (nguồn) 2. Dịch chương trình (nguồn) 3. Liên kết chương trình (đối tượng) 4. Chạy chương trình (đích) NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03 15 1.6. Tạo Ch.Trình Hợp Ngữ (tt) Trình nguồn mov ah, 2… Trình soạn thảo Notepad,… Trình nguồn CT.ASM Trình hợp dịch C>TASM CT Trình liên kết C>TLINK CT Trình đích C>CT Tập đối tượng CT.OBJ Trình đích CT.EXE Kết quả ???
File đính kèm:
- Bài giảng Hợp ngữ - Nguyễn Minh Tuấn - Đại cương về hợp ngữ.pdf