Bài giảng Hợp ngữ và lập trình hệ thống: Chương 1 - Phạm Công Hòa
lượt xem 6
download
Chương 1: Ngôn ngữ Assembler (ASM) và cách lập trình. Chương này gồm có những nội dung chính sau: Ngôn ngữ ASM, hệ lệnh ASM, các lệnh điều khiển khi dịch chương trình ASM, macro và chương trình con. 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 Hợp ngữ và lập trình hệ thống: Chương 1 - Phạm Công Hòa
- LOGO HỢP NGỮ và LẬP TRÌNH HỆ THỐNG CHƯƠNG 1: NGÔN NGỮ ASSEMBLER (ASM) VÀ CÁCH LẬP TRÌNH GV: Phạm Công Hòa Tel: 091.552.9889 Email: conghoaf1@gmail.com
- NỘI DUNG HỌC PHẦN I NGÔN NGỮ ASSEMBLER (ASM) VÀ CÁCH LẬP TRÌNH II LIÊN KẾT NGÔN NGỮ BẬC CAO VỚI ASM III LẬP TRÌNH HỆ THỐNG 2
- I NGÔN NGỮ ASSEMBLER (ASM) VÀ CÁCH LẬP TRÌNH 1. Ngôn ngữ ASM 2. Hệ lệnh ASM 3. Các lệnh điều khiển khi dịch chương trình ASM 4. Macro và Chương trình con 3
- 1. NGÔN NGỮ ASM - Nội dung: 1.1. Giới thiệu chung 1.2. Cài đặt chương trình dịch 1.3. Các bước thực hiện một chương trình ASM 1.4. Cấu trúc chung của một chương trình thuần túy ASM 4
- 1. NGÔN NGỮ ASM 1.1. Giới thiệu chung - ASM là ngôn ngữ bậc thấp, gần ngôn ngữ máy. - Ưu điểm: Tốc độ nhanh. Tiết kiệm vùng nhớ. - Nhược điểm: Khó viết vì phải am hiểu phần cứng. Khó sửa lỗi (lỗi cú pháp và lỗi thuật toán).. - Ứng dụng: Biết lõi của hệ điều hành. Viết chương trình đo và điều khiển trong công nghiệp Viết chương trình virus 5
- 1. NGÔN NGỮ ASM 1.2. Cài đặt chương trình dịch - Sử dụng MASM (Microsoft) hoặc TASM (Borland). - Sử dụng EMU8086 Với TASM, có thể copy nguyên CD bản quyền hoặc copy 4 tệp chính: Tasm.exe Tlink.exe DpmiLoad.exe DpmiMem.dll 6
- 1. NGÔN NGỮ ASM 1.3. Các bước thực hiện một chương trình ASM - Gồm 4 bước (Với TASM): Bước 1: Dùng chương trình sọan thảo bất kỳ (NC, EDIT, TC, NOTEPAD,…) để viết các lệnh chương trình, lưu vào tệp tin có đuôi “.asm”. Bước 2: Dịch tệp “.asm” sang “.obj”. Nếu dịch thành công ta sẽ thấy xuất hiện tệp “.obj”, ngược lại thấy thông báo lỗi dạng: **Error** Bước 3: Dịch tệp “.obj” sang “.exe”. Bước 4: Chạy chương trình (Gọi thi hành tệp “.exe”). 7
- 1. NGÔN NGỮ ASM 1.4. Cấu trúc chung của một chương trình thuần túy ASM - Cấu trúc chương trình ASM dạng đơn giản: [Phần khai báo MACRO, STRUC, RECORD và UNION] (nếu có) .MODEL .STACK .DATA ;Khai báo biến .CODE Nhãn: ;Thân chương trình [Các chương trình con] (nếu có) END Nhãn 8
- 1. NGÔN NGỮ ASM - Ví dụ một chương trình ASM đơn giản: Hiện xâu ký tự “Hello world!” ra màn hình. .MODEL small .STACK 100h .DATA s1 DB 'Hello world!$‟ .CODE Main: Mov ax, @data Mov ds, ax Lea dx, s1 Mov ah,9 Int 21h Mov ah,4ch Int 21h End Main 9
- I NGÔN NGỮ ASSEMBLER (ASM) VÀ CÁCH LẬP TRÌNH 1. Ngôn ngữ ASM 2. Hệ lệnh ASM 3. Các lệnh điều khiển khi dịch chương trình ASM 4. Macro và Chương trình con 5. Chương trình ASM dạng COM 10
- 2. HỆ LỆNH ASSEMBLER - Nội dung: 2.1. Hỗ trợ của hệ thống cho lập trình ASM 2.2. Cú pháp 1 dòng lệnh trong ASM 2.3. Hệ thống lệnh ASM 11
- 2. HỆ LỆNH ASSEMBLER 2.1. Hỗ trợ của hệ thống cho lập trình ASM 2.1.1. Thanh ghi (Registers) CPU 12
- 2. HỆ LỆNH ASSEMBLER 2.1. Hỗ trợ của hệ thống cho lập trình ASM Thanh ghi (Registers) - Thanh ghi là vùng nhớ đặc biệt (dạng RAM) nằm ở CPU 13
- 2. HỆ LỆNH ASSEMBLER Phân loại thanh ghi: • Nhóm 1: Gồm 1 thanh ghi cờ 16 bít. Người lập trình ASM hay lấy trạng thái các bit cờ làm điều kiện cho các lệnh nhảy (cờ CF). • Nhóm 2: Gồm 8 thanh ghi đa năng 16 bit: AX (Accumulator register) BX (Base register) 3 mode truy nhập: AH, CX (Counter regigter) AL, AX DX (Data regigter) SI DI 1 mode truy BP nhập SP *Người lập trình chỉ được phép dùng 7 thanh ghi đầu để thay cho biến. 14
- 2. HỆ LỆNH ASSEMBLER Phân loại thanh ghi (tiếp): • Nhóm 3: Gồm 1 thanh ghi 16 bit con trỏ lệnh: IP • Nhóm 4: Gồm 4 thanh ghi segment 16 bit: CS, DS, ES, SS 15
- 2. HỆ LỆNH ASSEMBLER Một số ý nghĩa chung của các thanh ghi: • AX, thanh ghi tích luỹ (Accumulatior Register): đây là thanh ghi chính để thực hiện các phép toán số học, các lệnh xuất nhập cổng. Ngoài ra nó cũng được dùng trong một số lệnh xử lý chuỗi. • BX, thanh ghi cơ sở (Base Register): Dùng để chỉ đến vị trí của một ô nhớ trong một đoạn. Thường thanh ghi BX được dùng trong phép định địa chỉ cơ sở khi truy xuất các dữ liệu trong bộ nhớ. • CX, thanh ghi đếm (Count Register): thường dùng để định số lần lặp lại trong một lệnh. • DX, thanh ghi dữ liệu (Data Register): thường dùng để ghi kết quả của các phép toán nhân và chia, định địa cổng trong các phép xuất nhập cổng. 16
- 2. HỆ LỆNH ASSEMBLER • Cờ nhớ CF (Carry Flag): Phép toán có/không mượn. • Cờ phụ AF (Auxiliary Carry Flag): Phép toán có/không mượn đối với 4 bit thấp. • Cờ Zero ZF (Zero Flag): Phép toán có/không bằng 0. • Cờ dấu SF (Sign Flag): Có giá trị tương ứng với bít cao nhất của kết quả phép toán vừa được thực hiện. • Cờ chẵn lẻ PF (Parity Flag): Tổng 8 bít thấp là số chẵn/lẻ. • Cờ tràn OF (Overflow Flag): kết quả phép toán các số có dấu bị sai. 17
- 2. HỆ LỆNH ASSEMBLER 2.1.2. Cách thể hiện địa chỉ của một ô nhớ. • Dạng Logic: Địa chỉ 1 ô nhớ = Segment : Offset (1 segment = 64K) - Giải thích: Phần Segment cho biết ô nhớ đó nằm ở Segment nào, phần Offset cho biết vị trí từ đầu segment đến ô nhớ đó. - Ví dụ: Địa chỉ ô nhớ (4:12) cho ta biết ô nhớ nằm ở vị trí thứ 12 của segment 4. • Dạng vật lý: Địa chỉ 1 ô nhớ = Segment * 16 + Offset 18
- 2. HỆ LỆNH ASSEMBLER 2.1.3. Một số hàm thường dùng của hệ thống hỗ trợ lập trình ASM • Hàm số 1: Chờ nhận 1 ký tự từ bàn phím. Mov ah,1 Int 21h Kết quả: phần AL của thanh ghi AX sẽ nhận mã ASCII của bàn phím. Ví dụ: Khi người dùng bấm ký tự „A‟, giá trị thanh ghi AL sẽ là: 0 1 0 0 0 0 0 1 19
- 2. HỆ LỆNH ASSEMBLER • Hàm số 2: Hiện 1 ký tự ra màn hình tại vị trí con trỏ. - Cách 1: Mov al, Mã_ASCII_của_ký_tự Mov ah, 0eh Int 10h - Cách 2: Mov al, Mã_ASCII_của_ký_tự Mov ah, 2 Int 21h 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Chương III : Lập trình hợp ngữ và tóm tắt tập lệnh
10 p | 497 | 218
-
Đề cương bài giảng HỢP NGỮ
184 p | 188 | 57
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
Bài giảng hợp ngữ - Chương 4
7 p | 96 | 24
-
Bài giảng hợp ngữ - Chương 6
8 p | 100 | 21
-
Bài giảng hợp ngữ - Chương 7
10 p | 103 | 21
-
Bài giảng Ngôn ngữ lập trình Pascal - ĐH Phạm Văn Đồng
125 p | 112 | 21
-
Bài giảng hợp ngữ - Chương 5
3 p | 116 | 20
-
Bài giảng Ngôn ngữ lập trình C/C++: Phần 2
162 p | 55 | 11
-
Bài giảng Thiết kế và lập trình web bằng ngôn ngữ ASP - Phần 2: HTML và JavaScript (Tiếp theo)
42 p | 33 | 10
-
Bài giảng Ngôn ngữ lập trình - Nguyễn Văn Linh
109 p | 118 | 8
-
Bài giảng Hợp ngữ và lập trình hệ thống: Chương 0 - Phạm Công Hòa
7 p | 81 | 4
-
Bài giảng Hợp ngữ và lập trình hệ thống: Chương 2 - Phạm Công Hòa
33 p | 45 | 4
-
Bài giảng Logic mờ và ứng dụng - PGS.TS. Trần Văn Lăng
288 p | 73 | 4
-
Bài giảng Ngôn ngữ lập trình Pascal: Chương 12 - Cấu trúc dữ liệu - Kiểu tập hợp
12 p | 102 | 4
-
Bài giảng Bài 5: Ngôn ngữ lập trình - Ths Lê Đức Long, Nguyễn Khắc Văn
12 p | 91 | 3
-
Bài giảng Nhập môn về lập trình - Chương 5: Cấu trúc lặp
34 p | 89 | 3
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