intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Hợp ngữ và lập trình hệ thống: Chương 1 - Phạm Công Hòa

Chia sẻ: 5A4F5AFSDG 5A4F5AFSDG | Ngày: | Loại File: PDF | Số trang:95

100
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
9=>0