可执行程序的两种格式

本文详细介绍了COM格式的汇编程序编写规则,包括仅有一个代码段、不引用段名或地址、入口偏移地址为100h等。同时,讨论了当DOS加载此类程序时,如何设置段寄存器,确保CS、DS、ES、SS相等并指向PSP段地址。示例代码展示了如何编写一个简单的COM程序并进行链接和转换。
摘要由CSDN通过智能技术生成

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段地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值