Bộ giáo dục đào tạo Đạihọc Thái Nguyên Cộng hoà xã hội chủ nghĩa Việt Nam Độc lập tự hạnh phúc -0110 - CHƯƠNGTRÌNHTRÌNHĐỘĐẠIHỌC (Dạy cho hệ quy đại học) Tên học phần : LẬPTRÌNHHỢPNGỮ (Assembly language) Số đơn vị họctrình : (dvht) Trình độ: Cho sinh viên năm thứ Phân bổ thời gian: Lên lớp: 35 tiết Thực hành: 10 tiết Điều kiện tiên quyết: vi xử lý, tin họcđại cương Mục tiêu học phần: Sinh viên cần nắm sau kết thúc môn học: Các bước chi tiết cần phải tiến hành viết chươngtrình Assembly, liên kết ngôn ngữ Assembly với ngôn ngữ bậc cao, Thông qua ngôn ngữ Assembly nêu lên chức DOS BIOS để qua thấy hoạt động bên 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 ghép nối Mô tả vắn tắt nội dung học phần: Ngôn ngữ Assembly cho 80x86 cấu trúc lập trình, lậptrình hệ thống, liên kết ngôn ngữ bậc cao Nhiệm vụ sinh viên: Dự lớp lý thuyết Thực hành 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 ứng dụng, NXB Khoa học Kỹ thuật, 1996 tái lần có sửa chữa 1998, 2002 [5] Đặng Thành Phu : Các tập lậptrình ngôn ngữ Assembler, NXB Khoa học Kỹ thuật, 2001và tái 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 máy) 11.Thang điểm: 10 12.Nội dung chi tiết học phần Chương Ngôn ngữ Assembly cách lậptrình (25 tiết) 1.1 Mở đầu 1.2 Cài đặt chươngtrình dịch TASM 1.3 Các bước thực chươngtrình Assembly máy PC : soạn thảo chương trình, dịch chương trình, liên kết, chạy thử cách tìm sai DEBUG DOS TD (Turbo Debug) Borland 1.4 Sự hỗ trợ hệ thống cho việc lậptrình Assembly 1.4.1.Cấu trúc ghi 1.4.2.Cách thể địa ô nhớ : dạng lôgíc dạng vật lý 1.4.3.Các ngắt hay dùng hỗ trợ cho lậptrình Assembly 1.5 Hệ lệnh Assembly (dạng mnemonic) lệnh điều khiển (directive) dịch chươngtrình 1.5.1 Các chế độ địa 1.5.2 Dạng tổng quát dòng lệnh Assembly 1.5.3 Cấu trúc thường thấy chươngtrình túy Assembly 1.5.4 Tập lệnh mnemonic Assembly : Các lệnh chuyển liệu, 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ự, lệnh rẽ nhánh, lệnh điều khiển xử lý 1.5.5 Các lệnh điều khiển dịch chươngtrình (directive) 1.5.5.1 Các directive điều khiển segment : dạng đơn giản (.MODEL, STACK, DATA, CODE, ) dạng chuẩn (SEGMENT, GROUP 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ươngtrình 1.6.1 Ý nghĩa chươngtrình 1.6.2 Cơ chế chươngtrình bị gọi 1.6.3 Cú pháp chươngtrình Assembly 1.6.4 Vấn đề chuyển giao tham số 1.6.5 Bảo vệ ghi thân chươngtrình 1.7 Directive INCLUDE tệp INCLUDE 1.7.1 Ý nghĩa 1.7.2 Cơ chế chươngtrình dịch TASM gặp directive INCLUDE 1.7.3 Vấn đề tìm tệp INCLUDE 1.8 MACRO vấn đề liên quan 1.8.1 Ý nghĩa 1.8.2 Các directive lặp khối lệnh dịch : REPT, IRP 1.8.3 Các directive điều kiện điều khiển dịch chươngtrình 1.8.4 Khai báo (xác lập) MACRO 1.8.5.Cơ chế chươngtrình dịch gặp MACRO 1.8.6 Cách dùng MACRO xác lập 1.8.9 Một số mặt mạnh MACRO so với tệp INCLUDE chươngtrình 1.9 Chươngtrì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 UNION 1.11 Assembly với số dấu phẩy động 1.11.1 Cấu tạo ngăn xếp đồng xử lý (coprocessor) FPU 80x87 1.11.2 Các dạng số dấu phẩy động cách biểu diễn số dấu phẩy động máy tính 1.11.3 Các lệnh thường dùng dấu phẩy động 1.12 Assembly 32 bit 1.12.1 Các 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 cho máy 32 bits 1.13 Xây dựng chươngtrình Assembly để tệp thực dạng COM 1.14 Các tập (5 tiết) Chương 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 Assembly: 2.1.2.1 Các vấn đề cần giải liên kết : có vấn đề : chươngtrình đa tệp (khai báo PUBLIC EXTRNAL với nhãn dùng chung), dấu _ (underscore) với nhãn phần chươngtrình Assembly, tên hàm Assembly mang giá trị 2.1.2.2 Trao đổi tham số 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 ý liên kết C++ với Assembly 2.1.4 Các 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 Pascal Assembly: 2.2.2.1 Các vấn đề cần giải liên kết : có vấn đề : chươngtrình đa tệp (khai báo PUBLIC EXTRNAL với nhãn dùng chung), vấn đề NEAR FAR (directive {$F+} {$F-}), vấn đề tìm tệp để liên kết (directive {$L}) tên hàm Assembly mang giá trị quay 2.2.2.2 Trao đổi tham số 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 tập (3 tiết) ChươngLậptrình hệ thống - Các ngắt hệ thống (BIOS DOS) (10 tiết) 3.1 Các bước máy tính khởi động 3.2 Các khái niệm phân loại ngắt : Ngắt cứng ngắt mềm, ngắt BIOS ngắt DOS, bảng vectơ ngắt 3.3 Cơ chế hoạt động ngắt bị kích hoạt 3.4 Các bước cần phải tiến hành viết phục vụ ngắt : 3.4.1 Viết chươngtrình phục vụ ngắt 3.4.2 Đưa địa đầu chươngtrình phục vụ ngắt vào vị trí tương ứng bảng vectơ ngắt 3.5.Các thông tin vùng nhớ biến BIOS 3.6 Các chứ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ụ 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ươngtrình Assembly thường trú 3.8 Các tập (3 tiết) ... học phần Chương Ngôn ngữ Assembly 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 chương trình Assembly máy PC : soạn thảo chương trình, dịch chương trình, ... COMMENT, ) 1.6 Chương trình 1.6.1 Ý nghĩa chương trình 1.6.2 Cơ chế chương trình bị gọi 1.6.3 Cú pháp chương trình Assembly 1.6.4 Vấn đề chuyển giao tham số 1.6.5 Bảo vệ ghi thân chương trình 1.7... dịch chương trình 1.8.4 Khai báo (xác lập) MACRO 1.8.5.Cơ chế chương trình dịch gặp MACRO 1.8.6 Cách dùng MACRO xác lập 1.8.9 Một số mặt mạnh MACRO so với tệp INCLUDE chương trình 1.9 Chương trình