我想在Visual Studio 2010中编写16位8086汇编代码 但给了我错误: 代码:
.MODEL small
.STACK 100h
.data
message BYTE "Hello, world!","$"
.code
_start:
mov ah,9
lea dx,message ; addr of buffer
int 21h
END _start
输出给了我这个错误:
Link:
Microsoft (R) Segmented Executable Linker Version 5.60.339 Dec 5 1994
Copyright (C) Microsoft Corp 1984-1993. All rights reserved.
warning L4017: /ERRORREPORT : unrecognized option name; option ignored
LINK : fatal error L1093: Files\Microsoft Visual Studio 10.0\VC\bin\link.exe :
object file not found
Build FAILED.
我该怎么办?
真的不知道问题出在哪里。 我从来没有用过VS来进行汇编。 有一些很棒的汇编 IDE 比 VS IMHO 更好 - RadASM、WinASM。 此代码:
.MODEL small
.STACK 100h
.data
message BYTE "Hello, world!","$"
.code
_start:
mov ah,9
lea dx,message ; addr of buffer
int 21h
END _start
使用此批处理文件可以很好地组装和链接:
@ECHO ON
del dosdisplay.exe
ML.EXE /DMASM /DDOS /Zm /c /nologo /I"d:\masm32\Include" "dosdisplay.asm"
link16.exe /NOLOGO "dosdisplay.obj" "",,,,,""
我使用的汇编器和链接器版本:
Microsoft (R) Macro Assembler Version 6.15.8803
Microsoft (R) Segmented Executable Linker Version 5.60.339 Dec 5 1994
什么是链接? 这不是32位版本吗? 或者16位的名字是一样的吗? 不确定,多年来一直在 DOS 应用程序中使用这 2 个文件/版本。
非常尊重帖子上的所有其他信息,我不得不说,将
.asm
文件名(扩展名不包括在计数中)的长度限制为 <=
8 个字符(+ 点 + 3 个字母扩展名) ,问题解决了。
出现这个问题:
1.由于.asm文件名太长。缩短您的文件名并获得您想要的结果。
2.由于链接文件时路径错误。