Xác định tất cả các procedure là near (ngầm định). Cuối chương trình sau chỉ thị Assembler END phải có nhãn của lệnh đầu tiên của chương trình. Ví dụ: end entry - Các quy tắc tạo các mô-đun phụ của file ‘.com’ Cũng tuân theo các quy tắc trên, nhưng cần lưu ý: 1. Đặt tên cho Segment ở mô-đun phụ giống tên Segment ở mô-đun chính, ví dụ tên Cseg dùng ở cả mô-đun chính lẫn phụ.
org 100h ;để dành 256 byte cho PSP (Program Segment Prefix) Đặt tất liệu lên đầu chương trình, tất nhiên trước liệu phải có lệnh nhảy(JMP) để nhảy qua vùng liệu Ví dụ: entry: jmp our_prog source db 10,20,30,40 dest dup(?) db our_prog proc near ;các lệnh chương trình our_prog our_prog endp Xác định tất procedure near (ngầm định) Cuối chương trình sau thị Assembler END phải có nhãn lệnh chương trình Ví dụ: end entry - Các quy tắc tạo mô-đun phụ file ‘.com’ Cũng tuân theo quy tắc trên, cần lưu ý: Đặt tên cho Segment mô-đun phụ giống tên Segment mơ-đun chính, ví dụ tên Cseg dùng mơ-đun lẫn phụ 2 Cũng giống file ‘.exe’, sau thị Assembler END cuối mô-đun phụ, không viết nhãn - Mẫu cho file dạng ‘.com’ Page ;trang Title ;điền tiêu đề Public ;ta để dòng tiêu đề cần Cseg Segment para public ‘code’ ASSUME CS:Cseg,DS:Deg[,ES:Cseg][,SS:Cseg] Org 100h Entry: Jmp Start ;vùng data chương trình Start Proc [Near];Near ngầm định ;các lệnh thủ tục Start Ret ;(trở chương trình gọi, DOS, Debug) Start Endp Cseg Ends End Entry - Mẫu cho mô-đun phụ file ‘.com’ Page ;trang Title ;ta để dòng tiêu đề Public Pname ;(khai báo public cho biến có) Cseg Segment para public ‘code’ ASSUME CS:Cseg,DS:Deg Jmp PName ;nhảy qua vùng data chương trình ;vùng data chương trình PName Proc Near ;các lệnh thủ tục Pname Ret ;trở lại chương trình gọi PName Endp Cseg Ends END c Ưu điểm nhược điểm file dạng ‘.com’ so với file dạng ‘.exe’ - Ưu điểm File ‘.com’ ngắn hẳn so với file dạng ‘.exe’ File ‘.com’ nói chung nạp vào nhớ nhanh file ‘.exe’ File ‘.com’ dễ viết khơng phải khởi tạo ghi SS, DS, ES Các chương trình thường trú phải viết dạng ‘.com’ - Nhược điểm Tồn chương trình ‘.com’ kể mã lệnh lẫn liệu nhớ cho Stack dài 64KB Chương trình ‘.com’ yêu cầu phương pháp viết chương trình chặt chẽ Chỉ sử dụng có Segment khơng có tách biệt hồn tồn lệnh số liệu Khơng truy nhập thủ tục số liệu Segment khác, khó sử dụng mô-đun người sử dụng khác xây dựng, mô-đun đặt tên cho Segment mà chúng dùng khác tên Segment ta Chương trình thực nhiệm vụ in mà hình chữ ‘A’ - Xây dựng chương trình dạng ‘.exe’ ;BTEXE.ASM Data_seg Segment Data1 db ‘A’ ;41h Data_seg ends StackSegment Stack db 64 dup(‘stack’) ;chuẩn bị sẵn 64 x =320 byte cho nhớ Stack StackEnds Code Segment Assume Entry: Cs:Code,Ds:Data_seg,Ss:Stack Mov AX,Data_seg Mov DS,AX Mov AH,02 Mov DL,Data1 Int 21h Mov AH,4ch Int 21h Code Ends end Entry - Xây dựng chương trình dạng ‘.com’ ;BTCOM.ASM Seg_a Start: Segment Assume cs:seg_a,ds:seg_a Org 100h Jmp Begin Data1 DB ‘A’;41h Begin: Mov AH,02 Mov DL,Data1 Int 21h Int 20h Seg_a End Start - Lệnh Mov Ends ... Chương trình ‘.com’ yêu cầu phương pháp viết chương trình chặt chẽ Chỉ sử dụng có Segment khơng có tách biệt hồn tồn lệnh số liệu Không truy nhập thủ tục số liệu Segment khác, khó sử dụng mơ-đun... ‘.com’ nói chung nạp vào nhớ nhanh file ‘.exe’ File ‘.com’ dễ viết khơng phải khởi tạo ghi SS, DS, ES Các chương trình thường trú phải viết dạng ‘.com’ - Nhược điểm Toàn chương trình ‘.com’ kể mã... CS:Cseg,DS:Deg Jmp PName ;nhảy qua vùng data chương trình ;vùng data chương trình PName Proc Near ;các lệnh thủ tục Pname Ret ;trở lại chương trình gọi PName Endp Cseg Ends END c Ưu điểm nhược