exe格式
com格式
编写com格式的汇编程序必须遵守以下规则
(1)程序中一般只定义一个代码段,没有数据段和堆栈段
(2)程序中不能含有引用段名或者段地址的语句
(3)程序入口的偏移地址必须等于100h,也就是说,在源程序最后由end指定的那个表示程序入口的标号的偏移地址必须说100h
code segment
assume cs :code,ds:code
org 100h
main:
jmp begin
hi db 'It is a com program',0Dh,0Ah,'$'
begin:
mov ah,9
mov dx,offset hi
int 21h
mov ah,4ch
int 21h
code ends
end main
masm hello;
link hello;
exe2bin hello hello.com
对于com格式的程序来说,被DOS装入内存并开始运行时,dos对所有段寄存器的值进行了设置,cs,ds,es,ss都被射程相等,并且都等于PSP段地址