什么是 LINK 错误 L1083:无法打开文件?
What is LINK error L1083 : conn't open file?
我将 masm5.0 用于 assemble 和 link 用于 link 它是 dosbox.I 的组装新手。这是我的第一个程序,应该是将0500H处的一个16位数字转换成对应的5位数字,然后把它们的ASCII码放到0510H~0514H上。
代码:
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
LINK 错误与您发布的代码无关。我们不可能解决这个问题。
但是您显示的代码存在一些问题。
你说它应该在 0500H 处转换一个 16 位数字,但你在那个位置只定义了一个字节!
在写入结果数字时,当您应该移动一个字节时却移动了一个字!
在写入结果数字时,您使用了将使用 SS 寄存器的 BP 相对寻址,但您没有 ASSUME SS:DATA
你初始化了SS寄存器但是SP呢?
转换程序错误,因为你需要从右边开始写结果!所以初始化 mov di,4
并使用 dec di
我将 masm5.0 用于 assemble 和 link 用于 link 它是 dosbox.I 的组装新手。这是我的第一个程序,应该是将0500H处的一个16位数字转换成对应的5位数字,然后把它们的ASCII码放到0510H~0514H上。 代码:
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
LINK 错误与您发布的代码无关。我们不可能解决这个问题。
但是您显示的代码存在一些问题。
你说它应该在 0500H 处转换一个 16 位数字,但你在那个位置只定义了一个字节!
在写入结果数字时,当您应该移动一个字节时却移动了一个字!
在写入结果数字时,您使用了将使用 SS 寄存器的 BP 相对寻址,但您没有 ASSUME SS:DATA
你初始化了SS寄存器但是SP呢?
转换程序错误,因为你需要从右边开始写结果!所以初始化 mov di,4
并使用 dec di