exe2bin不好使
cseg segment
assume cs:cseg,ds:cseg,es:cseg
org 100h
start:
mov ax,cseg
mov ds,ax
mov es,ax
mov cx,12
mov bx,0007h ; page 0, attribute 7 (normal)
mov bp,offset msg1
xor dx,dx
mov ax,1301h ; write string, move cursor
int 10h
hang: jmp hang
mov ax,4c00h
int 21h
msg1 db 'Hello, boot!'
org 200h-2
dw 0AA55h
cseg ends
end start
编译链接后是1024字节,多出的512字节是什么内容?是dos文件头吗?但是IMAGE_DOS_HEADER只有40h的长度
啊
这个程序为什么不能用vc带的exe2bin转换成com文件?提示file can not convert!
exe2bin很奇怪,能不能转换好像跟有没有org有关系,有时在一个没有org的程序加上一个org就不能转换了
,有时又可以转换有org的程序,而且转换后只100h个字节,都不知道为什么?
问题点数:20、回复次数:8Top
1 楼jronald(深白色)回复于 2005-02-19 00:06:47 得分 0
找到原因了
不能直接引用段名,如
mov ax,cseg
改成mov ax,cs就可以了
不知道为什么?Top
2 楼zara(Kyrie eleison)回复于 2005-02-19 08:56:35 得分 10
mov ax, cseg 中的 cseg 在不同的环境下, cseg 段可能会装载到不一样的地址, 所以, cseg 的值也可能是不同的, 这个不同的值是有系统在载入程序时根据文件中的记录进行调整的. 这就是所谓的 "重定位项", 而 .com 类型的程序是不能有这样的重定位项的, 所以, exe2bin 程序在处理这样的文件时就失败了Top
3 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2005-02-19 09:20:04 得分 0
学习Top
4 楼Great_Bug()回复于 2005-02-20 06:05:36 得分 0
回复人: zara(Kyrie eleison) ( * ) 信誉:205
兄弟您的信誉分是 205 椰! 我好羡慕喔~~~!Top
5 楼zara(Kyrie eleison)回复于 2005-02-20 10:26:41 得分 0
羡慕? 我的这个 id 比较早了, 开始实行信誉分的时候, 结帖时缺省是进 faq 的, 所以, 那时的信誉分都比较的高. 但是, 这个往往由于谐音的缘故也是被取笑的了, 当然多数也不是恶意的.Top
6 楼VxD1(Dump)回复于 2005-02-20 14:57:01 得分 0
org 200h-2Top
7 楼swtju94_2(program)回复于 2005-02-20 17:52:52 得分 0
mTop
8 楼bzCpp(csdn总技术值班室之饼子堂)回复于 2005-02-22 09:43:20 得分 10
如果要使用exe2bin,对可执行程序有很多要求。
如:最后代码长度、程序运行空间,最重要的是只能使用cs、ds、es这些8086的段,不能使用以后扩展的段。Top




