汇编用vs2005下的link.exe连接可以吗?
我用masm5.0生成的obj文件
用vs2005下的link.exe连接报错
fatal error LNK1107: invalid or corrupt file: cannot read at 0x42
这是源码,应该不会有问题吧
CSEGSEGMENT
ASSUME CS:CSEG
START:MOV DL,1
MOV AH,2
INT 21
INT 20
CSEGENDS
END START
[解决办法]
不可以的. 你的这个程序应该是 dos16 类的; 而 vs2005 应该是 Win32 类的, 一般这类的 link.exe 都不支持创建 dos 类的程序, Masm32 几个版本的 link.exe 也是如此
另外, 你的这个程序也有些问题. 首先 int21 和 int20 这样的, 其中的 21 和 20 应该是 16 进制的, 所以, 要么是 21h/20h, 要么在程序开头加上 .radix 16; 其次, 采用 int20h 方法实现 "结束程序返回到 DOS " 功能的话, 需要 CS 指向当前程序的 psp, 所以, 一般是将程序创建为 .com 格式, 或者就采用 int21h(AH=4ch) 这个功能调用