Win32汇编 结构体数组的使用

来源:百度知道 编辑:UC知道 时间:2024/09/28 05:31:21
比如一个结构体有2个成员,分别是x,y!然后怎么定义这个结构体数组,已经如何使用,比如遍历整个数组中的所有成员

以下是综合你要求的示例,希望对你有帮助!!
;ex8.asm(e:\masm\base) 结构体应用示例。
.386
.model flat, stdcall
option casemap :none

include windows.inc
include kernel32.inc
includelib kernel32.lib
include user32.inc
includelib user32.lib

.data
;COORD STRUCT ;windows.inc 文件中有定义
; x WORD ?
; y WORD ?
;COORD ENDS

buffer db 80 dup(0)
CapMsg db '输出',0
szFmt db 'stPos.x 的和 = %d, stPos.y 的和 = %d',0

stPos1 COORD <4,8> ;定义结构体变量并初始化
stPos2 COORD <> ;定义结构体变量(取结构体原初始值)
stPos3 COORD {2,4} ;定义结构体变量并初始化
stPos4 COORD {,40} ;定义结构体变量并初始化

stPos COORD 10 dup(<0,0>) ;定义结构体数组

.code
start:
mov stPos2.x, 10 ;域的使用
mov stPos2.y, 20

mov ecx,10
mov edi,offset stPos ;edi指向结构体变量
mov eax,1
mov ebx,11
@@:
mov (COORD ptr[edi]).x, ax