Tài liệu Giáo trình thực hành Lập trình hệ thống doc

39 714 2
Tài liệu Giáo trình thực hành Lập trình hệ thống doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ BỘ MÔN ĐIỆN TỬ - VIỄN THƠNG Giáo trình thực hành LẬP TRÌNH HỆ THỐNG Biên soạn: ThS Nguyễn Hứa Duy Khang Ks Trần Hữu Danh -ĐHCT5-2008 Thực hành lập trình hệ thống NỘI DUNG Giới thiệu BÀI 1: NHẬP MÔN HỢP NGỮ 1 Mục tiêu Kiến thức cần chuẩn bị Nội dung thực hành 3.1 Khảo sát lệnh Intel-8086 3.2 Cấu trúc chương trình dạng EXE 3.3 Viết chương trình đơn giản Bài tập đề nghị BÀI 2: XUẤT NHẬP KÝ TỰ Mục tiêu Kiến thức cần chuẩn bị Nội dung thực hành 3.1 In ký tự hình 3.2 In chuỗi ký tự hình 3.3 Nhận ký tự từ bàn phím 3.4 Nhận chuỗi ký tự từ bàn phím Bài tập đề nghị BÀI 3: CẤU TRÚC RẼ NHÁNH – VÒNG LẬP Mục tiêu Tóm tắt lý thuyết Nội dung thực hành 12 3.1 Cấu trúc rẽ nhánh 12 3.2 Cấu trúc vòng lập 13 Bài tập đề nghị 13 BÀI 4: NHẬP XUẤT SỐ DẠNG BIN-HEX-DEC 15 Mục tiêu 15 Kiến thức cần chuẩn bị 15 Nội dung thực hành 15 3.1 Nhập xuất số nhị phân 15 3.2 Nhập xuất số thập lục phân 16 3.3 Xuất số thập phân nguyên dương 18 Bài tập đề nghị 19 BÀI 5: XỬ LÝ TẬP TIN 21 Mục tiêu 21 Kiến thức cần chuẩn bị 21 Nội dung thực hành 21 3.1 Tạo tập tin 21 Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh i Thực hành lập trình hệ thống 3.2 Ghi nội dung tập tin 22 3.3 Đọc nội dung tập tin 23 3.4 Xóa tập tin 25 3.5 Đổi tên tập tin 26 Bài tập đề nghị 27 BÀI 6: XỬ LÝ CHUỖI KÝ TỰ 28 Mục tiêu 28 Kiến thức cần chuẩn bị 28 Nội dung thực hành 28 3.1 So sánh chuỗi 28 3.2 Di chuyễn chuỗi 30 3.3 Dị tìm chuỗi 31 Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh ii Giới Thiệu Thực hành Lập trình Hệ Thống giúp cho sinh viên viết chương trình ngơn ngữ Assembly máy tính PC Giáo trình hướng dẫn sinh viên kỹ việc lập trình Assembly như: Sử dụng trình biên dịch hợp ngữ môi trường Windows, biên dịch, sửa lỗi liên kết, khảo sát tập lệnh, ngắt đơn giản Hệ điều hành DOS Để vận dụng nâng cao kỹ lập trình hệ thống Hợp ngữ, địi hỏi sinh viên phải nổ lực nhiều việc tự học, đọc thêm tài liệu để bổ sung kiến thức định phần cứng máy tính nguyên ly vận hành thiết bị ngoại vi có liên quan, như: Máy in, hệ vi điều khiển, cổng vào nối tiếp/ song song Thời lượng mơn học có giới hạn, nên thực hành tổ chức thành chủ đề sau đây, chủ đề thực hành buổi (5 tiết): Bài 1: Nhập môn hợp ngữ Bài 2: Xuất nhập ký tự Bài 3: Cấu trúc rẽ nhánh – Vòng lập Bài 4: Xử lý ký tự - Ký số Bài 5: Xử lý tập tin Bài 6: Nhập xuất số BIN-HEX-DEC Để thực hành đạt hiệu cao, sinh viên cần phải chuẩn bị cho trước vào bắt đầu thực hành Muốn đạt điều này, sinh viên phải tuân thủ phương pháp học sau: Trước vào thực hành: - Nắm mục tiêu thực hành Xem lại kiến thức cần chuẩn bị nêu cho thực hành Nắm nội dung cần phải làm buổi thực hành Trong thực hành: - Tuyệt đối tuân thủ thực hành theo thứ tự nội dung thực hành Hoàn thành vấn đề trả lời câu hỏi đặt phần trước chuyển sang thực hành phần sau Quan sát tượng, thay đổi, xem xét đánh giá kết sau thao tác thực hành Lập lại thao tác thực hành nhiều lần, tìm cách giải khác sau thực hành theo yêu cầu cho đề So sánh, nhận xét cách giải khác Sau thực hành: - Đối chiếu mục tiêu thực hành với thực hành Nếu mục tiêu chưa thành thạo phải tìm cách lập lại thực hành để nắm mục tiêu vững Trong trình biên soạn, khơng thể tránh khỏi sơ xuất, chân thành góp ý chỉnh sửa để giáo trình ngày hồn chỉnh ThS Nguyễn Hứa Duy Khang Email: nhdkhang@ctu.edu.vn Bài – Nhập môn hợp ngữ Bài 1: Nhập Môn Hợp Ngữ MỤC TIÊU - Sử dụng công cụ Emu8086 để khảo sát lệnh Intel-8086 Sử dụng chức công cụ RadASM như: Soạn thảo, Hợp dịch (Assemble), Liên kết (Link) Chạy chương trình (Run) Viết cấu trúc chương trình hợp ngữ dạng tái định (EXE) Đọc hiểu sửa lỗi chương trình KIẾN THỨC CẦN CHUẨN BỊ - Các thao tác hệ điều hành Windows Cấu trúc chương trình hợp ngữ dạng EXE Qui trình Soạn thảo – Dịch chương trình Các lệnh đơn giản Intel-8086 thường dùng như: MOV, ADD, SUB, INC, DEC, AND, OR (Xem cú pháp giáo trình) NỘI DUNG THỰC HÀNH 3.1 Khảo sát lệnh Intel-8086: 3.1.1 Nhập vào Emu8086 đoạn lệnh sau dự đoán trước kết quả: MOV AH, 80 MOV AL, 86 MOV BX, AX MOV DH, BL MOV DL, BH MOV SI, CS ; AH ← 80 (AX = ?) ; AL ← 86 (AX = ?) ; BX ← AX (BH = ?, BL = ?) ; DH ← BL (DH = ?, DX = ?) ; DL ← BH (DL = ?, DX = ?) ; SI ← CS (SI = ?) Thực lệnh, sau lệnh ghi lại kết ghi ngoặc để đối chiếu với kết dự đốn giải thích 3.1.2 Thực hành tương tự câu 3.1.1 đoạn lệnh sau: MOV ADD DEC SUB AND AX, 8086 AL, AX AH, 10h AX, 0FF0h ; AX ← 8086 (AH = ?, AL = ?) ; AL ← AL + (AL = ?, AX = ?) ; AX ← AX – (AH = ?, AL = ?, AX = ?) ; AH ← AH – 10h (AH = ?, AL = ?, AX = ?) ; AX ← AX and 0FF0h (AX = ?) 3.1.3 Sinh viên chủ động lập lại lần câu 3.1.1 3.1.2 với giá trị toán hạng khác dịng lệnh 3.2 Cấu trúc chương trình dạng EXE: 3.1.1 [HELLO.ASM] Dùng RadASM để soạn thảo chương trình Hợp ngữ sau đây: Lưu ý: - Chương trình hồn tồn khơng có lỗi Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh Bài – Nhập môn hợp ngữ - Trong có lệnh mà sinh viên chưa học đến, điều không cần quan tâm, điều cần quan tâm thực hành Cấu trúc chương trình hợp ngữ - Đặt tên file chương trình nguồn HELLO.ASM DSEG SEGMENT ; Tạo đoạn DSEG chuoi DB “Hello World!$” ; Khai báo biến chuỗi DSEG ENDS CSEG SEGMENT ; Tạo đoạn CSEG ASSUME CS: CSEG, DS: DSEG ; CSEG đoạn lệnh, DSEG liệu begin: MOV AX, DSEG ; Khởi động địa đoạn liệu MOV DS, AX MOV AH, 09h ; AH ← 09h LEA DX, chuoi ; DX ← địa offset biến chuoi INT 21h ; gọi ngắt 21h MOV AH, 01h ; AH ← 01h INT 21h ; gọi ngắt 21h MOV AH, 4Ch ; Thốt chương trình INT 21h CSEG ENDS END begin a Hợp dịch chương trình HELLO.ASM kiểm tra xem file HELLO.OBJ tạo chưa b Liên kết chương trình HELLO, kiểm tra xem file HELLO.EXE tạo chưa c Chạy chương trình HELLO.EXE, quan sát hình, chương trình làm gì? d Thay đổi “Hello World!$” thành “Wellcome to Assembly$” Làm lại bước a, b c Chương trình làm gì? 3.2.2 [HELLO2.ASM] Sửa file HELLO.ASM cho giống hệt chương trình sau đặt tên lại HELLO2.ASM (chỉ khác chổ in nghiêng) - Lưu ý: Chương trình có vài lỗi a Dịch chương trình HELLO2.ASM, ghi lại thơng tin lỗi: Số lỗi, lỗi gì, dòng nào? b Kiểm tra xem file HELLO2.OBJ tạo không? Tại sao? c Sửa lỗi từ dòng xuống, lập lại câu a hết lỗi d Liên kết chương trình HELLO2 Kiểm tra xem có file HELLO2.EXE khơng? e Chạy chương trình HELLO2.EXE, so sánh kết với 3.1.1.d Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh Bài – Nhập môn hợp ngữ DSEG SEGMEMT ; Tạo đoạn DSEG chuoi DW “Wellcome to Assembly$” ; Khai báo biến chuỗi DSEG ENDS CSEG SEGMENT ; Tạo đoạn CSEG ASSUME CS: CSEG, DS: DSEG ; CSEG đoạn lệnh, DSEG liệu begin: MOV BX, SSEG ; Khởi động địa đoạn liệu MOV DS, BX MOV AH, 09h ; AH ← 09h LEA DH, chuoi ; DX ← địa offset biến chuoi INT 21h ; gọi ngắt 21h MOV AH, 01h ; AH ← 01h INT 21h ; gọi ngắt 21h MOV AH, 4Ch ; Thốt chương trình INT 21h CSEG ENDS END Begin 3.3 Viết chương trình đơn giản: 3.3.1 [SUM1.ASM] Viết chương trình dạng EXE để tính kết biểu thức sau, lưu trữ kết AX: 10 + 8086 - 100h + 350 + 0FAh Lưu ý: - Chỉ khai báo đoạn lệnh để viết chương trình a Dịch sửa lỗi (nếu có lỗi) chạy chương trình b Dùng Emu8086 để chạy chương trình kiểm tra kết lưu AX 3.3.2 [SUM2.ASM] Viết chương trình dạng EXE để tính kết biểu thức có dạng tổng quát sau: KQUA = A + B – C + D + E Trong đó: KQUA, A, B, C, D, E biến byte khai báo đoạn liệu Lưu ý: - Chương trình gồm đoạn: Đoạn lệnh Đoạn liệu dùng để chứa Biến a Gán giá trị biến A = 1000, B = 10, C = 1Fh, D = 30h, E = 300Ah Dịch chạy chương trình b Dùng Emu8086 để kiểm tra kết câu a c Áp dụng SUM2.ASM để tính biểu thức cho câu 3.3.1 Dùng Emu8086 để kiểm tra kết BÀI TẬP ĐỀ NGHỊ: 4.1 Dùng Emu8086 để khảo sát lệnh khác tập lệnh Intel-8086 4.2 Tự tìm hiểu thêm chức khác Emu8086 Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh Bài – Nhập môn hợp ngữ 4.3 Viết chương trình tính biểu thức sau: (Phải viết theo kiểu sử dụng biến để chứa toán hạng kết quả, SV tự đặt tên biến theo ý mình) a 15h * 250 d 1000 ÷ 100 b 16 * 0AF1h e 1000 ÷ 100h c 300 * 400 f 3AB45Eh ÷ 0A1h 4.4 Sử dụng Emu8086 để kiểm chứng kết chương trình viết cho 4.3 Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh Bài – Xuất nhập ký tự Bài 2: Xuất Nhập Ký Tự MỤC TIÊU - Sử dụng ngắt mềm để viết chương trình: in ký tự - chuỗi ký tự lên hình nhập ký tự - chuỗi ký tự từ bàn phím - Hiểu cách quản lý ký tự ký số Hợp ngữ KIẾN THỨC CẦN CHUẨN BỊ - Kết thực hành - Các hàm 01h, 02h, 06h, 07h, 08h, 09h, 0Ah ngắt 21h - Bảng mã ASCII 3.NỘI DUNG THỰC HÀNH 3.1 In ký tự nàm hình - Chương trình sử dụng hàm 2, ngắt 21h để in ký tự B hình viết sau Hãy soạn thảo lưu lại thành tập tin nguồn có tên BAI_2A.ASM CSEG start: CSEG SEGMENT ASSUME CS: CSEG mov ah, 02h ; Hàm 2, in ký tự hình mov dl, ‘B’ ; DL chứa ký tự cần in int 21h ; gọi ngắt để thực hàm mov ah, 08h ; Hàm 08h, ngắt 21h int 21h mov ah, 4Ch ; Thốt khỏi chương trình int 21h ENDS END start - Dịch sửa lỗi (nếu có) chạy chương trình để xem kết in hình - Các dòng lệnh thực chức in ký tự ‘B’ hình? Các dịng lệnh khác dùng làm gì? - Sửa lại chương trình để in hình ký tự ‘D’ Chạy chương trình kiểm chứng kết - Viết chương trình để in hình số - Viết chương trình để in hình số 89 - Hai dịng lệnh có chức chương trình? Nếu khơng có dịng lệnh chương trình thực nào? (Thử xóa bỏ dịng lệnh chạy chương trình, quan sát kết để phát chức năng) Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh Bài – Xuất nhập ký tự 3.2 In chuỗi ký tự hình - Muốn in chuỗi ký tự hình sử dụng hàm 9, ngắt 21h chương trình sau đây, soạn thảo đặt tên tập tin nguồn BAI_2B.ASM - Dịch, sửa lỗi (nếu có) chạy chương trình để xem kết hình - Viết lại chương trình để in hình chuỗi “Truong Dai Hoc Can Tho” - Sửa khai báo biến chuoi có dạng sau: chuoi DB ‘Truong Dai Hoc’, 10, 13, ‘Can Tho$’ - Dịch chạy chương trình để xem kết Trong khai báo biến chuoi, giá trị 10, 13 có ý nghĩa việc in chuỗi hình - Sửa lại chương trình để in hình số 2006 DSEG SEGMENT chuoi DB ‘Chao sinh vien nganh Cong Nghe Thong Tin.$’ DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG start: mov ax, DSEG mov ds, ax mov ah, 09h ; Hàm 9, in chuỗi ký tự hình lea dx, chuoi ; dl chứa ký tự cần in int 21h ; gọi ngắt thực mov ah, 08h int 21h mov ah, 4Ch ; khỏi chương trình int 21h CSEG ENDS END start 3.3 Nhận ký tự từ bàn phím - Chương trình sau (trang 3) sử dụng hàm 01, ngắt 21h để nhận ký tự từ bàn phím Soạn thảo đặt tên tập tin nguồn BAI_2C.ASM - Dịch, sửa lỗi (nếu có) chạy chương trình, gõ phím cần nhập Quan sát kết hình - Ký tự nhập lưu trữ đâu CPU quản lý dạng thức gì? (Dùng Emu8086 để khảo sát) - Sửa chương trình để đọc ký tự hàm 7, ngắt 21h - Chạy chương trình so sánh hoạt động hàm hàm Ths Nguyễn Hứa Duy Khang, Ks Trần Hữu Danh ... sau: Trước vào thực hành: - Nắm mục tiêu thực hành Xem lại kiến thức cần chuẩn bị nêu cho thực hành Nắm nội dung cần phải làm buổi thực hành Trong thực hành: - Tuyệt đối tuân thủ thực hành theo thứ... khác sau thực hành theo yêu cầu cho đề So sánh, nhận xét cách giải khác Sau thực hành: - Đối chiếu mục tiêu thực hành với thực hành Nếu mục tiêu chưa thành thạo phải tìm cách lập lại thực hành để... dung thực hành Hoàn thành vấn đề trả lời câu hỏi đặt phần trước chuyển sang thực hành phần sau Quan sát tượng, thay đổi, xem xét đánh giá kết sau thao tác thực hành Lập lại thao tác thực hành

Ngày đăng: 13/12/2013, 04:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan