在定义比较长的数据的时候会因为数据超过行限制而出现statement too complex或者line to long的错误提示,可以使用下面的代码:
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
include \masm32\include\masm32rt.inc
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
.data
kostka1 real4 -1.0,-1.0, 1.0, 1.0,-1.0, 1.0, 1.0, 1.0, 1.0
real4 -1.0, 1.0, 1.0,-1.0,-1.0,-1.0,-1.0, 1.0,-1.0
real4 1.0, 1.0,-1.0, 1.0,-1.0,-1.0,-1.0, 1.0,-1.0
real4 -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,-1.0
real4 -1.0,-1.0,-1.0, 1.0,-1.0,-1.0, 1.0,-1.0, 1.0
real4 -1.0,-1.0, 1.0, 1.0,-1.0,-1.0, 1.0, 1.0,-1.0
real4 1.0, 1.0, 1.0, 1.0,-1.0, 1.0,-1.0,-1.0,-1.0
real4 -1.0,-1.0, 1.0,-1.0, 1.0, 1.0,-1.0, 1.0,-1.0
_SIZEOF_kostka1 = ($ - kostka1)
dd_SIZEOF_kostka1 dd ($ - kostka1)
tmp TEXTEQU %_SIZEOF_kostka1
% echo _SIZEOF_kostka1 = tmp
.code
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
start:
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
print ustr$(dd_SIZEOF_kostka1),13,10
mov eax, input(13,10,"Press enter to exit...")
exit
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
end start
如果是单纯的数据的话下面的代码也是一样的:
array db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
array_len EQU $ - OFFSET array
如果是数组可以用下面的方式:
pic1 byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
SIZEOFpic1 EQU $-pic1
pic2 byte 10*10 dup(1)