Tải bản đầy đủ (.doc) (4 trang)

Chương trình trình độ đại học môn lập trình hợp ngữ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (57.36 KB, 4 trang )

Bộ giáo dục và đào tạo
Đại học Thái Nguyên

Cộng hoà xã hội chủ nghĩa Việt Nam
Độc lập tự do hạnh phúc
---0110---

CHƯƠNG TRÌNH TRÌNH ĐỘ ĐẠI HỌC
(Dạy cho hệ chính quy và đại học)
1. Tên học phần : LẬP TRÌNH HỢP NGỮ (Assembly language)
2. Số đơn vị học trình : 3 (dvht)
3. Trình độ: Cho sinh viên năm thứ 2
4. Phân bổ thời gian:
 Lên lớp: 35 tiết
 Thực hành: 10 tiết
5. Điều kiện tiên quyết: vi xử lý, tin học đại cương
6. Mục tiêu của học phần:
Sinh viên cần nắm được sau khi kết thúc môn học:
 Các bước chi tiết cần phải tiến hành khi viết một chương trình
Assembly, liên kết giữa ngôn ngữ Assembly với ngôn ngữ bậc
cao,
 Thông qua ngôn ngữ Assembly nêu lên các chức năng DOS và
BIOS để qua đó thấy được sự hoạt động bên trong của máy tính,
bổ trợ cho môn kỹ thuật vi xử lý, kiến trúc máy tính, ngoại vi và
ghép nối
7. Mô tả vắn tắt nội dung học phần:
Ngôn ngữ Assembly cho 80x86 và các cấu trúc lập trình, lập trình hệ
thống, liên kết ngôn ngữ bậc cao
8. Nhiệm vụ của sinh viên:
 Dự lớp lý thuyết
 Thực hành


9. Tài liệu học tập
[1] Turbo Assembler 4.0 (User’s Guide), Borland Int., INC. 1800
GREEN ROAD, 1996
[2] Turbo Assembler 4.0 (Quick Reference Guide), Borland Int.,
INC.1800 GREEN ROAD, 1996
[3] Michael Tischer : PC System Programming - An depth reference for
DOS programmer, Abacus, 1990
[4] Đặng Thành Phu : Turbo Assembler và ứng dụng, NXB Khoa học
và Kỹ thuật, 1996 và tái bản 2 lần có sửa chữa 1998, 2002


[5] Đặng Thành Phu : Các bài tập lập trình bằng ngôn ngữ Assembler,
NXB Khoa học và Kỹ thuật, 2001và tái bản 2 lần có sửa chữa 2003,
2005
[6] David Hergert, Nancy Thibeault : PC Architecture from Assembly
language to C, Prentice Hall, 1997
10.Tiêu chuẩn đánh giá sinh viên:
 Điểm lý thuyết (có thể thi thực hành trên máy)
11.Thang điểm: 10
12.Nội dung chi tiết học phần
Chương 1. Ngôn ngữ Assembly và cách lập trình (25 tiết)
1.1. Mở đầu
1.2. Cài đặt chương trình dịch TASM
1.3. Các bước thực hiện một chương trình Assembly trên máy PC : soạn thảo
chương trình, dịch chương trình, liên kết, chạy thử và cách tìm sai bằng
DEBUG của DOS và TD (Turbo Debug) của Borland
1.4. Sự hỗ trợ của hệ thống cho việc lập trình Assembly
1.4.1.Cấu trúc các thanh ghi
1.4.2.Cách thể hiện địa chỉ ô nhớ : dạng lôgíc và dạng vật lý
1.4.3.Các ngắt hay dùng hỗ trợ cho lập trình Assembly

1.5. Hệ lệnh Assembly (dạng mnemonic) và các lệnh điều khiển (directive) khi dịch
chương trình
1.5.1. Các chế độ địa chỉ
1.5.2. Dạng tổng quát một dòng lệnh Assembly
1.5.3. Cấu trúc thường thấy của một chương trình thuần túy Assembly
1.5.4. Tập lệnh mnemonic của Assembly : Các lệnh chuyển dữ liệu, các lệnh số
học, ác lệnh thao tác bit, ác lệnh làm việc với xâu ký tự, các lệnh rẽ
nhánh, và các lệnh điều khiển xử lý.
1.5.5. Các lệnh điều khiển khi dịch chương trình (directive)
1.5.5.1. Các directive điều khiển segment : dạng đơn giản (.MODEL,
.STACK, .DATA, .CODE, ...) và dạng chuẩn (SEGMENT,
GROUP và ASSUME)
1.5.5.2. Các directive hay dùng khác (PTR, EQU, LABEL, SEG,
OFFSET, DUP, FAR, NEAR, ARG, COMMENT,...)
1.6. Chương trình con
1.6.1. Ý nghĩa của chương trình con
1.6.2. Cơ chế khi một chương trình con bị gọi
1.6.3. Cú pháp một chương trình con Assembly
1.6.4. Vấn đề chuyển giao tham số
1.6.5. Bảo vệ thanh ghi trong thân chương trình con
1.7. Directive INCLUDE và tệp INCLUDE
1.7.1. Ý nghĩa
1.7.2. Cơ chế khi chương trình dịch TASM gặp directive INCLUDE
1.7.3. Vấn đề tìm tệp INCLUDE


1.8. MACRO và các vấn đề liên quan
1.8.1. Ý nghĩa
1.8.2. Các directive lặp một khối lệnh khi dịch : REPT, IRP ...
1.8.3. Các directive điều kiện điều khiển khi dịch chương trình

1.8.4. Khai báo (xác lập) MACRO
1.8.5.Cơ chế của chương trình dịch khi gặp MACRO
1.8.6. Cách dùng MACRO đã được xác lập
1.8.9. Một số mặt mạnh của MACRO so với tệp INCLUDE và chương trình
con
1.9. Chương trình đa tệp
1.9.1. Ý nghĩa
1.9.2. Directive PUBLIC
1.9.3. Directive EXTRN
1.9.4. Directive GLOBAL
1.10. Biến hỗn hợp : Directive STRUC, RECORD và UNION
1.11. Assembly với số dấu phẩy động
1.11.1. Cấu tạo của ngăn xếp bộ đồng xử lý (coprocessor) FPU 80x87
1.11.2. Các dạng số dấu phẩy động và cách biểu diễn số dấu phẩy động của máy
tính
1.11.3. Các lệnh thường dùng của dấu phẩy động
1.12. Assembly 32 bit
1.12.1. Các thanh ghi máy 32 bits
1.12.2. Hệ lệnh mở rộng cho máy 32 bits
1.12.3. Một số lệnh mới cho máy 32 bits
1.13. Xây dựng chương trình Assembly để được tệp thực hiện dạng .COM
1.14. Các bài tập (5 tiết)
Chương 2. Liên kết Assembly với ngôn ngữ bậc cao (10 tiết)
2.1. Liên kết C với Assembly
2.1.1. Inline Assembly
2.1.2. Viết tách biệt module của C và Assembly:
2.1.2.1. Các vấn đề cần giải quyết khi liên kết : có 3 vấn đề : chương
trình đa tệp (khai báo PUBLIC và EXTRNAL với các nhãn
dùng chung), dấu _ (underscore) với các nhãn đối với phần
chương trình Assembly, tên hàm Assembly mang giá trị

2.1.2.2. Trao đổi tham số bằng cách khai báo biến toàn cục – Hàm không
đối
2.1.2.3 Trao đổi tham số thông qua stack - Hàm có đối
2.1.3. Một số lưu ý khi liên kết C++ với Assembly
2.1.4. Các bài tập
2.2. Liên kết Pascal với Assembly
2.2.1. Inline Assembly
2.2.2. Viết tách biệt module của Pascal và Assembly:
2.2.2.1. Các vấn đề cần giải quyết khi liên kết : có 4 vấn đề : chương
trình đa tệp (khai báo PUBLIC và EXTRNAL với các nhãn


dùng chung), vấn đề NEAR và FAR (directive {$F+} và {$F-}),
vấn đề tìm tệp để liên kết (directive {$L}) và tên hàm Assembly
mang giá trị quay về
2.2.2.2. Trao đổi tham số bằng cách khai báo biến toàn cục – Hàm
không đối
2.2.2.3. Trao đổi tham số thông qua ngăn xếp (stack) - Hàm có đối
2.3. Các bài tập (3 tiết)
Chương 3. Lập trình hệ thống - Các ngắt hệ thống (BIOS và DOS) (10 tiết)
3.1. Các bước khi máy tính khởi động
3.2. Các khái niệm và phân loại ngắt : Ngắt cứng và ngắt mềm, ngắt của BIOS và
ngắt của DOS, bảng vectơ ngắt
3.3. Cơ chế hoạt động khi một ngắt bị kích hoạt
3.4. Các bước cần phải tiến hành khi viết một phục vụ ngắt :
3.4.1. Viết chương trình con phục vụ ngắt
3.4.2. Đưa địa chỉ đầu của chương trình con phục vụ ngắt vào vị trí tương ứng
của bảng vectơ ngắt
3.5.Các thông tin trong vùng nhớ biến BIOS
3.6 Các chức năng của các ngắt hay dùng

3.6.1. Các ngắt phục vụ bàn phím
3.6.2. Các ngắt phục vụ màn hình
3.6.3. Các ngắt phục vụ đĩa
3.6.4. Các ngắt phục vụ thư mục
3.6.5. Ngắt phục vụ tệp
3.6.6. Ngắt phục vụ máy in, chuột
3.6.7. Ngắt phục vụ máy in
3.6.8. Ngắt truyền tin nối tiếp qua cổng COM
3.6.9. Ngắt thời gian
3.7. Chương trình Assembly thường trú
3.8. Các bài tập (3 tiết)



×