汇编语言程序设计:符号定义与段定位

版权申诉
0 下载量 106 浏览量 更新于2024-07-03 收藏 526KB PPT 举报
"该资源是关于计算机原理的第三章,主题是汇编语言程序设计的第二部分。内容主要涉及符号定义、段定义类以及ASSUME伪指令的解释。" 在汇编语言程序设计中,符号定义是至关重要的,它帮助程序员创建易于理解和维护的代码。符号定义类分为以下几种: 1. 名字EQU表达式:这种定义方式允许程序员将一个符号名与一个表达式的值关联起来。例如,`ADREQUES EQU [BP+DI+5]`,在汇编过程中,每次遇到`ADREQUES`,都会被替换为表达式的计算结果。`PURGE`语句可以用来清除之前的定义,以便重新定义同一个符号。 2. 名字=表达式:这种方式允许对同一个符号进行多次定义,赋予不同的值。如`Count = Count - 1`,这在迭代或递减计数时非常有用。 3. 名字LABEL类型:这是一种等价于`EQU`的定义,例如`P132`的开始可以用`LABEL`来标记。在变量定义时,如`AADB5`和`BBDB4`,可以使用`MOVAL, AA+1`和`MOVAL, CC+1`这样的语句,根据符号的定义改变寄存器的值。 段定义类则是汇编语言中组织代码和数据的关键部分: 1. 段定义通过`SEGMENT`和`ENDS`关键字进行,可以指定段的定位、组合方式和类别。例如,` names SEGMENT BYTE`定义了一个字节对齐的段,`LINK`选项用于控制段的物理位置和组合策略。 2. 段的定位选项包括`PARA`(字对齐)、`BYTE`(任意地址起始)、`WORD`(字节对齐)和`PAGE`(256字节对齐)。默认是字对齐。 3. 段的组合方式决定了不同逻辑段如何在物理内存中组合。`ASSUME`伪指令则用来声明段寄存器与逻辑段的对应关系,如`ASSUME DS:DATA, ES:EXTRA`,但不实际创建物理段。 4. 类别在多模块程序连接时发挥作用,确保相同类别的逻辑段会被连续地装入内存。 此外,`ORG`伪指令用于设定地址计数器的值,也就是指定当前的偏移地址,例如`ORG 100H`会把地址计数器设置为100H,这在编写需要特定起始位置的代码或数据时很有用。 这些概念构成了汇编语言程序设计的基础,它们帮助程序员有效地组织和控制程序的内存布局,以及处理符号和段的逻辑与物理映射。