学习专用 发表于 2012-5-6 23:01:20

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

学习专用 发表于 2012-5-6 23:08:57

;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]
查看完整版本: Win32 ASM结构体 赋值问题