Nguyên tác và quy trình cài đặt các ứng dụng trong windows p5 pdf

5 299 0
Nguyên tác và quy trình cài đặt các ứng dụng trong windows p5 pdf

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

Thông tin tài liệu

Các hãng viết các chương trình dịch (Assembler) được sử dụng phổ biến từ trước tới nay đều không tích hợp một trình có chức năng soạn thảo với Assembler. Để soạn thảo chương trình nguồn chúng ta tự chọn cho mình một chương trình soạn thảo văn bản, thí dụ SideKick, Turbo Pascal, Turbol C, Yêu cầu đối với chương trình soạn thảo văn bản là nó không sử dụng các mã ASCII mở rộng, hoặc các ký tự điều khiển. (Tất nhiên trong chương trình nguồn có thể có một số ký tự điều khiển như: về đầu dòng - CR, xuống dòng - LF, tụt vào - TAB, hết file - EOF ) Sử dụng chức năng soạn thảo của Turbo Pascal để soạn thảo rất tiện lợi, quen thuộc đối với các bạn sinh viên, dễ trình bày chương trình nguồn đẹp. Sử dụng SideKick cũng rất tiện lợi, các thao tác soạn thảo khá giống Turbo Pascal. Nếu phải làm việc trên đĩa mềm thì sử dụng SideKick tốt hơn vì nó là chương trình thương trú nhỏ, chỉ cần nạp từ đĩa vào bộ nhớ một lần, sau đó khi cần gọi ra để làm viêc chỉ cần kích hoạt nó trong bộ nhớ (ấn CTRL_ALT), khi thoát soạn thảo chỉ cần ấn ESC. Nên đặt tên mở rộng của file chương trình nguồn là ‘.asm’ vì khi sử dụng Assembler để hợp dịch chương trình nguồn, nếu ta không chỉ ra tên mở rộng thì nó luôn ngầm hiểu là file có tên mở rộng như vậy (‘.asm’). Ví dụ chúng ta soạn thảo môt chương trình nguồn và ghi lên đĩa với tên file là VIDU1.ASM. c. Bước 3: Hợp dịch chương trình nguồn Trên thị trường có khá nhiều Assembler, trong đó Assembler của Microsoft được sử dụng rộng rãi nhất và các tài liệu về nó cũng sẵn nhất. Sau Assembler của Microsoft là Assembler của hãng Borland. Trong giáo trình “Nhập môn Assembler là lập trình hệ thống” này chúng ta sẽ sử dụng Assembler của Microsoft, nó tương thích với Assembler của IBM và của Borland. d. Bước 4: Kết nối chương trình và số liệu (bước Link) Có một số chương trình thực hiện chức năng này, thí dụ LINK.EXE của Microsoft, TLINK.EXE của Borland chúng có tên gọi chung là Linker. Chương trình LINK thực hiện việc dịch các mã đối tượng có thể định vị lại được (relocatable object code) do Assembler (MASM) sinh ra trong file dạng ‘.OBJ’ thành mã máy khả thi (file dạng ‘.EXE’). LINK có 3 nhiệm vụ chính như sau: - Kết hợp các mô-đun đối tượng riêng biệt thành một file khả thi. Người sử dụng thường viết chương trình theo các mô-đun, thử riêng rẽ từng mô-đun, do vậy sẽ tạo ra nhiều file đối tượng ‘.obj’ tương ứng. Cần sử dụng LINK để kết nối các mô-đun đối tượng lại thành một mô-đun duy nhất, khả thi. Thí dụ LINK MOD1 + MOD2 + MOD3 sẽ kết nối các file MOD1.OBJ, MOD2.OBJ, MOD3.OBJ để tạo thành MOD1.EXE (chạy được). - Giải quyết vấn đề tham chiếu tới các biến ngoài. - Sinh ra một file listing - file dạng ‘.MAP’ (nếu chúng ta yêu cầu), trong đó thể hiện các file mô-đun đối tượng đã được kết hợp lại với nhau như thế nào. e. Bước 5: Dịch chương trình sang File dạng’.com’ Để tạo ra file.com, ta cần chương trình exe2bin.exe của DOS. Chương trình này chuyển một file dạng .exe sang file dạng .com (vì vậy số 2 nằm trong tên này thường được các nhà chuyên môn phát âm giống từ ‘to’ chứ không phải là ‘two’!). Thực hiện bước này như sau: EXE2BIN VIDU1 VIDU1.COM Thông báo lỗi của EXE2BIN ‘File cannot be converted’, đây có lẽ là thông báo lỗi duy nhất của EXE2BIN, nguyên nhân sinh ra lỗi này có thể như sau:  Chương trình chính không có chỉ thị Asembler ORG 100H đứng liền dưới khai báo CODE_SEG SEGMENT.  Chỉ thị END cuối cùng trong mô-đun chương trình chính có thể thiếu nhãn của lệnh đầu tiên của chương trình.  Các đoạn xếp sai thứ tự, cần kiểm tra lại bằng file ‘.MAP’  Chương trình chính không đứng đầu tiên trong danh sách các file input của LINK. a. File khả thi dạng ‘.EXE’. Sau đây là mẫu chung cho một mô-đun chương trình chính, chương trình dạng ‘.EXE’, nó bao gồm một chương trình đầy đủ hoặc nó sẽ được kết nối với một hoặc một số mô-đun phụ khác để tạo nên một chương trình. 1. PAGE m,n 2. TITLE (Dòng tiêu đề chính đầu mỗi trang in đặt tại đây) 3. SUBTTL (Dòng tiêu đề phụ - dòng 2 đầu mỗi trang in đặt tại đây) 1. (Khai báo EXTRN cho các thủ tục ngoại lai tại đây) 2. STACK SEGMENT PARA ATACK ‘STACK’ 3. DB 64 DUP(‘STACK’)(mảng gồm 64 phần tử với độ rộng là 5) 4. STACK ENDS 5. DSEG SEGMENT PARA PUBLIC ‘DATA’ 6. (Tất cả dữ liệu của chương trình đặt tại đây) 7. DSEG ENDS 8. CSEG SEGMENT PARA PUBLIC ‘CODE’ 9. ASSUME S:CSEG, DS:DSEG, SS:STACK 10. ENTRY PROC FAR ; RNTRY là tên thủ tục và cũng là nhãn 11. PUSH DS ; đặt 2 work vào stack, đó chính là địa chỉ để 12. SUB AX,AX ; cho chương trình này có thể trở về DOS 13. PUSH AX ; hoặc nơi mà nó được gọi thi hành khởi tạo 14. MOV AX,DSEG ; giá trị cho thanh ghi đoạn DS. 15. MOV DS, AX ; 16. (insert instructions here) 17. RET ; Trở về chương trình trước, nơi nó vừa được gọi 18. ENTRY ENDP 19. CSSEG ENDS 20. END ENTRY Mẫu tổng quát của một chương trình giải thích như sau: . đối với các bạn sinh viên, dễ trình bày chương trình nguồn đẹp. Sử dụng SideKick cũng rất tiện lợi, các thao tác soạn thảo khá giống Turbo Pascal. Nếu phải làm việc trên đĩa mềm thì sử dụng. trình chính có thể thiếu nhãn của lệnh đầu tiên của chương trình.  Các đoạn xếp sai thứ tự, cần kiểm tra lại bằng file ‘.MAP’  Chương trình chính không ứng đầu tiên trong danh sách các. rãi nhất và các tài liệu về nó cũng sẵn nhất. Sau Assembler của Microsoft là Assembler của hãng Borland. Trong giáo trình “Nhập môn Assembler là lập trình hệ thống” này chúng ta sẽ sử dụng Assembler

Ngày đăng: 29/07/2014, 13:21

Từ khóa liên quan

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

Tài liệu liên quan