那如何才能生成.com形式的可执行文件呢?
15 个解决方案
#1
以微小模式编译,如果你有exe2bin,就直接转换,如没有,用debug也形,如下:
debug test.exe
n test.com
w 100
q
就形成了.com文件。
debug test.exe
n test.com
w 100
q
就形成了.com文件。
#2
不行。这个方法做出来的com程序根本不能运行
#3
你试了的吗。
#4
使用Tlink编译,有个-t的参数,直接执行tlink会有说明的
#5
先用 TCC 编译,应该使用 TINY 模式。
再用 Tlink -t 连接就可生成 .COM 文件了。
#6
用debug不行,除非你改exe文件头
可能SCUM()的方法对
可能SCUM()的方法对
#7
用debug的那个办法和用ren a.exe a.com有区别么?
你试过可以吗?你是忘了删exe吧!
你试过可以吗?你是忘了删exe吧!
#8
不对不对,你就算忘了删exe,也不应该执行到exe
#9
gz
#10
你们的方法我都试了
不行呀
不行呀
#11
用debug,它装载EXE文件时,会自动处理文件头,微小模式的EXE装入后在内存中的映象就是一COM文件。
#12
不是所有的EXE都能转换成COM,好象COM可执行文件的大小不能超过64K(记不清了,请指正)
#13
ren比较有效!
#14
to 彭俊
你说的法子不行
说具体点,什么这个映象,那个映象的
到底怎么变
你说的法子不行
说具体点,什么这个映象,那个映象的
到底怎么变
#15
只有以微小模式编译的EXE文件才能转换成COM文件,编译时先设置编译模式为TINY(微小),编译后生成EXE文件,用DEBUG载入后,DEBUG会进行一些处理,使其在内存中可以直接执行,由于微小模式只有一个代码段,那一个代码段就是一个COM文件。COM文件执行时,DOS直接将它装入内存,整个文件就是一个段,没有文件头,执行时不经过任何处理。所以可以用这个方法。这种方法生成的COM文件长度要长些,因为我不知道实际一个段有多长,只好把EXE文件中除了文件头的部分全写进了,但程序都能正常运行,因为两种文件装进内存中的结果是一样的。
#1
以微小模式编译,如果你有exe2bin,就直接转换,如没有,用debug也形,如下:
debug test.exe
n test.com
w 100
q
就形成了.com文件。
debug test.exe
n test.com
w 100
q
就形成了.com文件。
#2
不行。这个方法做出来的com程序根本不能运行
#3
你试了的吗。
#4
使用Tlink编译,有个-t的参数,直接执行tlink会有说明的
#5
先用 TCC 编译,应该使用 TINY 模式。
再用 Tlink -t 连接就可生成 .COM 文件了。
#6
用debug不行,除非你改exe文件头
可能SCUM()的方法对
可能SCUM()的方法对
#7
用debug的那个办法和用ren a.exe a.com有区别么?
你试过可以吗?你是忘了删exe吧!
你试过可以吗?你是忘了删exe吧!
#8
不对不对,你就算忘了删exe,也不应该执行到exe
#9
gz
#10
你们的方法我都试了
不行呀
不行呀
#11
用debug,它装载EXE文件时,会自动处理文件头,微小模式的EXE装入后在内存中的映象就是一COM文件。
#12
不是所有的EXE都能转换成COM,好象COM可执行文件的大小不能超过64K(记不清了,请指正)
#13
ren比较有效!
#14
to 彭俊
你说的法子不行
说具体点,什么这个映象,那个映象的
到底怎么变
你说的法子不行
说具体点,什么这个映象,那个映象的
到底怎么变
#15
只有以微小模式编译的EXE文件才能转换成COM文件,编译时先设置编译模式为TINY(微小),编译后生成EXE文件,用DEBUG载入后,DEBUG会进行一些处理,使其在内存中可以直接执行,由于微小模式只有一个代码段,那一个代码段就是一个COM文件。COM文件执行时,DOS直接将它装入内存,整个文件就是一个段,没有文件头,执行时不经过任何处理。所以可以用这个方法。这种方法生成的COM文件长度要长些,因为我不知道实际一个段有多长,只好把EXE文件中除了文件头的部分全写进了,但程序都能正常运行,因为两种文件装进内存中的结果是一样的。