我是组装新手。我有以下我正在学习的书中的代码。我下载了 MASM32。我的电脑是Win7 64位。我尝试构建以下代码:
.model small
.stack 100h
.data
a dw 2
b dw 5
sum dw ?
.code
main proc
mov ax, @data
mov ds, ax
mov ax, a
add ax, b
mov sum, ax
mov ax, 4c00h
int 21h
main endp
end main
不幸的是,我收到以下错误:
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: C:\masm32\test.asm
C:\masm32\test.asm(11) : error A2006: undefined symbol : DGROUP
C:\masm32\test.asm(14) : error A2074: cannot access label through segment registers
C:\masm32\test.asm(15) : error A2074: cannot access label through segment registers
C:\masm32\test.asm(16) : error A2074: cannot access label through segment registers
C:\masm32\test.asm(22) : warning A4023: with /coff switch, leading underscore required for start address : main
_
Assembly Error
Press any key to continue . . .
我已经搜索了解决方案。我可以error A2074:
通过添加ASSUME DS:_DATA
前.data
行来解决。我从这篇文章中得到它:无法通过段寄存器访问标签,汇编错误, 但不幸的是,该解决方案没有解释为什么以及这是什么?
为什么会出现这些错误以及如何解决它们?我是新手,一开始需要一些细节和一步一步的。