正在加载图片...
4.3基本伪指令 6. ASSUME 基本形式 ASSUME段寄存器名段名,...,段寄存器名:段名 功能 明确指出段与段寄存器的缺省对应关系,即告诉MASM某个段的段地址在哪个段寄存器 里。这样,汇编器会根据变量所在的段,必要时自动插入段超越前缀。 例如,下列伪指令 ASSUME CS: CSEG, DS: DSEG, ES: ESEG, SS: SSEG 指出CSEG、DSEG、ESEG和SSEG分别为代码段、数据段、附加段和堆栈段。 通常,访问的数据在DS所指的数据段或SS所指的堆栈段,而所有的代码引用(如转移等) 相对于当前代码段。那么,汇编器如何知道哪个段是代码段、哪个是数据段呢? 实际上,数据段之所以成为数据段,是由于DS指向它。由于程序运行时可以改变DS的值 使得任何段都可以成为数据段。因此,当程序定义一个段后,需要告诉汇编器该段的段地址 在哪个段寄存器中。 ASSUME就提供这种信息。 2021//21 80x86汇编语言程序设计2021/1/21 80x86汇编语言程序设计 4.3 基本伪指令 6. ASSUME 基本形式: ASSUME 段寄存器名:段名, ..., 段寄存器名:段名 功能: 明确指出段与段寄存器的缺省对应关系,即告诉MASM某个段的段地址在哪个段寄存器 里。这样,汇编器会根据变量所在的段,必要时自动插入段超越前缀。 例如,下列伪指令 ASSUME CS:CSEG, DS:DSEG, ES:ESEG, SS:SSEG 指出CSEG、DSEG、ESEG和SSEG分别为代码段、数据段、附加段和堆栈段。 通常,访问的数据在DS所指的数据段或SS所指的堆栈段,而所有的代码引用(如转移等) 相对于当前代码段。那么,汇编器如何知道哪个段是代码段、哪个是数据段呢? 实际上,数据段之所以成为数据段,是由于DS指向它。由于程序运行时可以改变DS的值, 使得任何段都可以成为数据段。因此,当程序定义一个段后,需要告诉汇编器该段的段地址 在哪个段寄存器中。ASSUME就提供这种信息
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有