汇编结构体声明、定义、使用

一、结构体声明规则

结构名 STRUC [Alignment][, NONUNIQUE]
数据定义语句序列
结构名 ENDS

  • 代码示例:

    .DATA
    aligned_student STRUC  4
      m_Age          DWORD    ?               ;不初始化
      m_Name         BYTE     30    DUP(0)    ;大小为30字节的字符串数组,初始化为0
      m_Score        DWORD    0               ;INT型分数,初始化为0
      m_Interests    BYTE     "No",0          ;初始化为 "No\0"
    aligned_student ENDS
  • 注意

    • DUP即英文duplicate的缩写,重复的意思,用来定义重复的字节、字、双字、结构等内存缓冲区。括号里写“?”表示不初始化
    • 可以不用写Alignment,默认以1对齐
    • 建议把结构体声明和定义都写在.DATA段中

二、结构体定义规则

以下任意一种都可以

student1    aligned_student    <>
student2    aligned_student    <20,"Bob",80,"NO">
student3    aligned_student    <20>
student4    aligned_student    {20}

结构体数组定义

class1    aligned_student    25 DUP(<>)

三、结构体使用

mov        eax,student1.m_Age
mov        student2.m_Score,eax
lea        eax,offset InterestName

你可能感兴趣的:(Asm)