Assembly 什么是链路错误L1083:conn';不能打开文件吗?

Assembly 什么是链路错误L1083:conn';不能打开文件吗?,assembly,Assembly,我用masm5.0来组装并链接到dosbox上。我是组装新手。这是我的第一个程序,它应该在0500H将一个16位的数字转换成5个相应的数字,然后将它们的ASCII码放到0510H~0514H。 代码: 链接错误与您发布的代码无关。我们不可能解决这个问题 但是,您显示的代码有一些问题 你说的应该在0500H转换一个16位的数字,但是你只在那个位置定义了一个字节 当写入结果数字时,当您应该移动一个字节时,您移动了一个单词 写入结果数字时,您使用了BP相对寻址,该寻址将使用SS寄存器,但您没有假定SS

我用masm5.0来组装并链接到dosbox上。我是组装新手。这是我的第一个程序,它应该在0500H将一个16位的数字转换成5个相应的数字,然后将它们的ASCII码放到0510H~0514H。 代码:


链接错误与您发布的代码无关。我们不可能解决这个问题

但是,您显示的代码有一些问题

你说的应该在0500H转换一个16位的数字,但是你只在那个位置定义了一个字节

当写入结果数字时,当您应该移动一个字节时,您移动了一个单词

写入结果数字时,您使用了BP相对寻址,该寻址将使用SS寄存器,但您没有假定SS:DATA

您初始化了SS寄存器,但是SP呢


转换例程是错误的,因为您需要从右侧开始写入结果!因此,初始化
mov di,4
并使用
dec di

这显然不是你的代码的问题,而是你如何链接它的问题,但你还没有表现出来。无论如何,请检查您的文件名。@Nya如果您交换了所有出现的BX和BP,那么您根本不必使用SS寄存器。省钱多了!
DATA SEGMENT
ORG 0500H
INPUT DB (?)

ORG 0510H
RESULT DB 5 DUP(?)
DATA ENDS


CODE SEGMENT
    ASSUME CS:CODE, DS:DATA
START:
    XOR AX, AX
    MOV SS, AX 

    MOV BP, 0510H
    MOV BX, 0AH
    XOR DI, DI

    MOV AL, INPUT
    XOR AH,AH

    MOV CX, 5H

LP: XOR DX, DX
    DIV BX
    ADD DX,030H
    MOV [BP][DI], DX
    INC DI
    LOOP LP
CODE ENDS
END START