目录C 中的结构体StructC 中的宏Macro汇编语言中的常量汇编语言中的结构体汇编语言中的宏C 中的结构体Struct定义用户自定义数据类型将不同类型的变量组合在一起。特点成员按声明顺序连续存储可能存在内存对齐。通过.或-访问成员。便于管理复杂数据实体。struct Point { short x; short y; }; Point p; p.x 123; p.y 456;C 中的宏Macro通过#define定义在预处理阶段进行文本替换。支持常量和带参数的宏无类型检查。#define MAX 256 #define MyAdd(n) (n 256)汇编语言中的常量基础解释EQU定义符号常量编译时替换为值。代码中MAX EQU 256使MAX代表256。原理文本替换无运行时开销。作用提高代码可读性、维护性。学习要点掌握EQU语法注意与变量区别。MAX EQU 256 ; 定义常量汇编语言中的结构体基础解释结构体struct定义数据模板指定字段类型和大小编译器计算字段偏移。代码中Point struct定义x和y各2字节word总4字节。实例如MyPoint在数据段分配内存访问字段通过基址偏移如MyPoint.x偏移0。原理结构体是连续内存块偏移固定类似C的struct但汇编直接操作地址。作用组织相关数据便于管理复杂结构。学习要点理解内存布局、偏移计算、字段访问方式。在 MASM 中使用struct…ends定义结构体。Point struct x WORD ? ; 2字节未初始化 y WORD ? ; 2字节未初始化 Point ends关键知识点成员按声明顺序分配内存偏移量从 0 开始计算。WORD 2 字节DWORD 4 字节等。?表示分配空间但不初始化。结构体实例定义在.data段.data MyPoint Point ? ; 创建 Point 类型的实例成员访问方式mov MyPoint.x, 123 ; 直接通过 变量名.成员名 访问汇编器自动计算偏移 mov MyPoint.y, 456内存布局MyPoint.x偏移 02字节MyPoint.y偏移 22字节总大小 4 字节汇编语言中的宏基础解释宏MACRO是MASM的文本替换机制定义代码片段通过参数动态生成指令。宏在预编译时展开直接嵌入调用处无函数调用开销。原理宏是纯文本替换编译器将宏调用替换为宏体代码。代码中MyAdd MACRO nNumber展开为mov eax,256; add eax,nNumber。作用提高代码复用性减少重复书写适合简单逻辑。学习要点掌握宏定义、参数传递、展开机制注意宏不涉及运行时堆栈与函数的区别。使用MACRO…endm定义;---- 宏定义 MyAdd MACRO nNumber ; 定义宏 xor eax,eax mov eax,256 add eax,nNumber endm ;结束宏调用方式MyAddMAX ; 或 MyAdd100宏展开后相当于直接插入mov eax, 256 add eax, MAX ; 结果 eax 512宏的特点汇编时完全展开为指令序列文本替换。支持参数实现代码复用。提高开发效率但会增加最终生成代码的体积。调试时需注意宏展开后的实际指令