Nasm 结构体定义

1. 结构体定义

在NASM内部,没有实际意义上的定义结构体类型的机制,NASM使用宏 STRUC 和 ENDSTRUC来定义一个结构体。STRUC有一个参数,它是结构体的名字。可以使用“RESB”类伪指令定义结构体的域,然后使用ENDSTRUC来结束定义。

如下,定义一个名为“mystruc"的结构体,包含一个long, 一个word, 一个byte和一个字符串。

struc mytype
         mt_long:  resd  1
         mt_word: resw 1
         mt_byte:  resb  1
         mt_str:     resb  32
endstruc

在上面的代码中定义了,mt_long 在偏移地址0处,mt_word在4,mt_byte 在6,mt_str在7。

如果想要在多个结构体中使用具有同样名字的成员,可以把结构体定义成这样:

struc mytype
		.long: 	resd	1
		.word:	resw	1
		.byte:	resb	1
		.str:	resb	32
endstruc 


2. 结构体声明

声明一个结构体使用”ISTRUC“、”AT“ 和 “IEND”宏。在程序中声明一个“mystruc"结构体,可以像如下代码一样:


使用定义一:<

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值