Win32 ASM结构体 赋值问题
.386.model flat,stdcall
include msvcrt.inc
includelib msvcrt.lib
TRUE EQU1
;;;;定义结构体
Stu struct
_namedd 10 dup(?)
_numdd?
Stu ends
.const
fmt db '%d',13,10,0
mark01 db 'ABCDEF',0
.data
s1 Stu <> ; 在这里怎样把_name初始化为 '_NAMEINIT'???
.code
start:
invoke crt_printf,offset s1._name
;;;;;;有没有好的办法将_name重新赋值??,下面的方法有点麻烦。
mov esi,offset mark01
mov edi,offset s1._name
.while TRUE
CLD
MOVSB
.BREAK .IF dword ptr ==0
.endw
;;;;;;;;;
invoke crt_printf,offset s1._name
ret
end start ;s1 Stu <<1,2,3,4,5,6,7,8,9,0>,2> ;ok
s1 Stu <<'adfa4'>,2> ;error A2084: constant value too large 为什么错了??
页:
[1]