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

Bài giảng Kỹ thuật vi xử lý: Chương 4 - Dư Thanh Bình

Chia sẻ: Nguyên Phương | Ngày: | Loại File: PDF | Số trang:147

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

Bài giảng "Kỹ thuật vi xử lý - Chương 4: Lập trình hợp ngữ với 8088" trình bày các nội dung: Mở đầu về lập trình hợp ngữ; các cấu trúc lập trình với hợp ngữ; các lệnh logic, lệnh dịch và lệnh quay; ngăn xếp và thủ tục; các lệnh nhân, chia; các lệnh thao tác chuỗi. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật vi xử lý: Chương 4 - Dư Thanh Bình

  1. KỸ THUẬT VI XỬ LÝ Microprocessors Dư Thanh Bình Bộ môn KTMT - Khoa CNTT Trường ĐH Bách Khoa Hà Nội
  2. Lưu ý của tác giả  Không được tự ý sao chép hay quảng bá bài giảng này nếu chưa được sự đồng ý của tác giả.  Địa chỉ liên hệ của tác giả: Dư Thanh Bình Bộ môn Kỹ thuật Máy tính Viện Công nghệ Thông tin và Truyền thông Trường Đại học Bách Khoa Hà Nội Tel: 8696125 – Mobile: 0979859568 Email: binhdt@it-hut.edu.vn Copyright (c) 1/2007 by DTB 2
  3. Nội dung của môn học  Chương 1: Máy tính và hệ vi xử lý  Chương 2: Biểu diễn thông tin trong máy tính  Chương 3: Bộ vi xử lý Intel 8088  Chương 4: Lập trình hợp ngữ với 8088  Chương 5: Nối ghép 8088 với bộ nhớ  Chương 6: Nối ghép 8088 với hệ thống vào-ra Copyright (c) 1/2007 by DTB 3
  4. Kỹ thuật Vi xử lý Chương 4 LẬP TRÌNH HỢP NGỮ VỚI 8088 Dư Thanh Bình Bộ môn Kỹ thuật Máy tính Viện Công nghệ Thông tin và Truyền thông Trường Đại học Bách Khoa Hà Nội Copyright (c) 1/2007 by DTB 4
  5. Nội dung chương 4 4.1. Mở đầu về lập trình hợp ngữ 4.2. Các cấu trúc lập trình với hợp ngữ 4.3. Các lệnh logic, lệnh dịch và lệnh quay 4.4. Ngăn xếp và thủ tục 4.5. Các lệnh nhân, chia 4.6. Các lệnh thao tác chuỗi 4.7. Một số ví dụ Copyright (c) 1/2007 by DTB 5
  6. 4.1. Mở đầu về lập trình hợp ngữ 1. Các loại ngôn ngữ lập trình 2. Cú pháp của hợp ngữ 3. Dữ liệu của chương trình 4. Khai báo biến 5. Khai báo hằng 6. Một số lệnh cơ bản 7. Cấu trúc chương trình 8. Chương trình EXE và COM 9. Vào-ra đơn giản 10. Các ví dụ 11. Dịch và chạy chương trình Copyright (c) 1/2007 by DTB 6
  7. 1. Các loại ngôn ngữ lập trình  Ngôn ngữ máy:  Chỉ được biểu diễn bằng số nhị phân.  Bộ vi xử lý chỉ hiểu được các chương trình mã máy.  Con người rất khó khăn để tạo lập hay đọc hiểu chương trình ngôn ngữ máy.  Hợp ngữ (Assembly Language):  Là ngôn ngữ lập trình bậc thấp (gần ngôn ngữ máy nhất).  Được xây dựng trên cơ sở ký hiệu tập lệnh của bộ vi xử lý tương ứng.  Phụ thuộc hoàn toàn vào bộ vi xử lý cụ thể.  Ngôn ngữ lập trình bậc cao:  Gần với ngôn ngữ tự nhiên hơn.  Được xây dựng độc lập với cấu trúc của máy tính. Copyright (c) 1/2007 by DTB 7
  8. Lập trình với hợp ngữ  Ưu điểm:  Can thiệp sâu vào cấu trúc hệ thống.  Hiểu sâu hơn về hệ thống.  Chương trình mã máy tương ứng sẽ ngắn hơn, thường nhanh hơn và tốn ít bộ nhớ hơn.  Nhược điểm:  Khó học vì gần với mã máy.  Chương trình nguồn dài, không thích hợp để xây dựng những chương trình lớn.  Kết hợp ngôn ngữ lập trình bậc cao với hợp ngữ. Copyright (c) 1/2007 by DTB 8
  9. Chương trình dịch hợp ngữ  Được gọi là ASSEMBLER  Một số chương trình dịch hợp ngữ cho IBM-PC:  MASM – Microsoft Marco Assembler:  Các tệp: MASM.EXE, LINK.EXE, EXE2BIN.EXE ...  TASM – Turbo Assembler:  Các tệp: TASM.EXE, TLINK.EXE ... Copyright (c) 1/2007 by DTB 9
  10. Các bước lập trình  Bước 1: Phát biểu bài toán  Bước 2: Xây dựng thuật giải  Bước 3: Viết mã chương trình  Bước 4: Dịch và sửa lỗi cú pháp  Bước 5: Chạy thử và hiệu chỉnh chương trình Copyright (c) 1/2007 by DTB 10
  11. Các cấu trúc lập trình cơ bản  Cấu trúc tuần tự  Cấu trúc rẽ nhánh  Cấu trúc lặp Copyright (c) 1/2007 by DTB 11
  12. 2. Cú pháp của hợp ngữ  Chương trình hợp ngữ gồm các dòng lệnh, mỗi lệnh viết trên một dòng, mỗi dòng có thể là:  Lệnh của bộ vi xử lý (instruction)  Chỉ dẫn của chương trình dịch ASSEMBLER  Các lệnh hợp ngữ không phân biệt chữ hoa, chữ thường.  Khi dịch thành mã máy thì chỉ có các lệnh của bộ vi xử lý mới được dịch.  Cấu trúc của một dòng lệnh : Tên Thao tác Toán hạng Chú thích ( Name Operation Operand Comment )  Giữa các trường phải có ít nhất một dấu cách (hoặc TAB)  Ví dụ: MAIN PROC BAT_DAU: MOV CX, 50 ; khoi tao bo dem Copyright (c) 1/2007 by DTB 12
  13. Ý nghĩa các trường trong lệnh  Trường tên:  Sử dụng cho: nhãn lệnh, tên thủ tục, tên biến  Quy ước đặt tên: dài từ 1 đến 31 ký tự, cho phép sử dụng:  Chữ cái (không phân biệt chữ hoa và chữ thường)  Chữ số (không được dùng làm ký tự đầu tiên)  Các ký tự khác: ?, @, $, %, . (dấu . chỉ được dùng khi nó là ký tự đầu tiên). Copyright (c) 1/2007 by DTB 13
  14. Ý nghĩa các trường trong lệnh (tiếp)  Trường thao tác:  Nếu là lệnh của vi xử lý thì đó chính là mã lệnh (MOV, CALL, ADD,...).  Nếu là chỉ dẫn thì đó là lệnh giả của chương trình dịch (Pseudo-op). Copyright (c) 1/2007 by DTB 14
  15. Ý nghĩa các trường trong lệnh (tiếp)  Trường toán hạng:  Đối với lệnh thì toán hạng xác định dữ liệu bị tác động bởi mã lệnh.  Một lệnh có thể có 0, 1, 2 toán hạng.  Ví dụ:  MOV CX,5 ; 2 toán hạng  INC AX ; 1 toán hạng  NOP ; 0 toán hạng  Đối với lệnh giả thì toán hạng cho thêm thông tin cho lệnh giả đó.  Trường chú thích:  Bắt đầu bằng dấu ";" theo sau đó là lời giải thích. Copyright (c) 1/2007 by DTB 15
  16. 3. Dữ liệu của chương trình  Hợp ngữ cho phép biểu diễn dưới dạng:  Số nhị phân: 1011b, 1011B, ...  Số thập phân: 35, 35d, 35D, ...  Số Hexa: 4Ah, 0ABCDh, 0FFFFH, ...  Kí tự: "A", 'HELLO', "Bach Khoa", ...  Tất cả các kiểu dữ liệu trên sau đó đều được trình dịch Assembler dịch ra mã nhị phân.  Mỗi kí tự được dịch thành mã ASCII tương ứng  Chương trình không phân biệt 'A' với 41h hay 65 Copyright (c) 1/2007 by DTB 16
  17. Các chỉ thị giả định số liệu Chỉ thị giả Biểu diễn DB Định nghĩa byte DW Định nghĩa word (2 byte) DD Định nghĩa double word (4 byte) DQ Định nghĩa quadword (8 byte liên tiếp) DT Định nghĩa tenbyte (10 byte liên tiếp) Copyright (c) 1/2007 by DTB 17
  18. 4. Khai báo biến  Biến Byte:  Khai báo: Ten_bien DB Gia_tri_khoi_dau Ten_bien DB ?  Ví dụ: Age DB 25 ; Khởi tạo giá trị ban đầu Age = 25 Alpha DB ? ; Ban đầu Alpha không xác định  Khoảng xác định của biến Byte:  Số không dấu: [0, 255]  Số có dấu: [-128, 127] Copyright (c) 1/2007 by DTB 18
  19. Khai báo biến (tiếp)  Biến Word:  Khai báo: Ten_bien DW Gia_tri_khoi_dau Ten_bien DW ?  Ví dụ: Test DW -5 ; -5 = 1111111111111011b Beta DW 1234h ; 1234h = 0001001000110100b XYZ DW ?  Khoảng xác định của biến Word:  Số không dấu: [0, 65535]  Số có dấu: [-32768, 32767] Copyright (c) 1/2007 by DTB 19
  20. Khai báo biến (tiếp)  Biến mảng:  Mảng Byte: MangB DB 10h, 20h, 30h, 40h Buffer DB 100 dup (?)  Mảng Word: MangW DW -12, 127, 0A48Bh  Mảng kí tự:  Thực chất là mảng Byte  Ví dụ: 2 cách viết sau là tương đương M DB 'ABC' M DB 41h, 42h, 43h Copyright (c) 1/2007 by DTB 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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