尝试使用地址初始化变量时出现 TASM 错误
TASM error when trying to initialize a variable with an address
我的第一个 TASM 程序出现错误。这些是抛出的 2 个错误:
在我的.DATA
LisData db 10,20,30,40,50
Inicio db [LisData] ;ERROR! expecting scalar type
然后在 .CODE
mov Bx, Inicio ;ERROR! operand types don't match
也许这是一个非常明显的错误,但我对 TASM 了解太少,非常感谢您的帮助
最后这是完整的 .asm 文件
.MODEL SMALL
.STACK 100H
.DATA
Long db 5
Sumver db 0
LisData db 10,20,30,40,50
Inicio db [LisData]
.CODE
CALCULO:
mov Ch, 0
mov Cl, Long
mov Bx, Inicio
mov Al, [Bx]
CICLO:
add Bx, 1
add Al, [Bx]
loop CICLO
mov Sumver, Al
mov ah, 004ch
int 21h
END
我想要 LisData
在 Inicio
的内存地址,一个指针,这样我就可以遍历其中的值 (10,20,30) 以便将它们相加并存储总和在 Sumver
.
I want the memory address of LisData, a pointer so I can move through
the values in it
那么你需要一个字,而不是一个字节,你需要地址本身,比如:
Inicio dw LisData
我的第一个 TASM 程序出现错误。这些是抛出的 2 个错误:
在我的.DATA
LisData db 10,20,30,40,50
Inicio db [LisData] ;ERROR! expecting scalar type
然后在 .CODE
mov Bx, Inicio ;ERROR! operand types don't match
也许这是一个非常明显的错误,但我对 TASM 了解太少,非常感谢您的帮助
最后这是完整的 .asm 文件
.MODEL SMALL
.STACK 100H
.DATA
Long db 5
Sumver db 0
LisData db 10,20,30,40,50
Inicio db [LisData]
.CODE
CALCULO:
mov Ch, 0
mov Cl, Long
mov Bx, Inicio
mov Al, [Bx]
CICLO:
add Bx, 1
add Al, [Bx]
loop CICLO
mov Sumver, Al
mov ah, 004ch
int 21h
END
我想要 LisData
在 Inicio
的内存地址,一个指针,这样我就可以遍历其中的值 (10,20,30) 以便将它们相加并存储总和在 Sumver
.
I want the memory address of LisData, a pointer so I can move through the values in it
那么你需要一个字,而不是一个字节,你需要地址本身,比如:
Inicio dw LisData