正在加载图片...
存储器 O p 00 代码段 20 30000 32000 50 数据段 30 在汇编语言指令中,可以用符号地址代替数值地址,如 MOV AX, VALUE 此时 VAIUE为存放操作数单元的符号地址。如写成 MOV AX, VALUEJ 也是可以的.两者是等效的。如果 VALUE在附加段中,则应该指定段跨越前缀如下 MOV X, ES: VALUE 10V AX, ES: VALUE 直接寻址方式适用于处理单个变量,例如需要处理某个存放在存储器里的变量,可用直 接寻址方式,将该变量先取到一个寄存器中,然后在做处理。 IBM PC机规定:除在双操作数中,除立即数外,必须有一个操作数使用寄存器方式。 这也是一个常量常常送到寄存器去的原因 (四)寄存器间接址 操作数的有效地址在基址寄存器BX、BP或变垃寄存器SI、D中,而操作数则在存储 器中,如下图所示。 段寄存器 段地址 指令寄存器 存储器 寄存器 EA 操作数 如果指令中指定的寄存器是BX、SI、D,则操作数在数据段(DS)中,所以用DS寄 存器的内容作为段地址,即操作数的物理地址为: 物理地址=16d×(DS)十(BX) 或物理地址;16d×(DS)+(SI 或物理地址=16d×(DS)+(Dn) 如指令中指定SP寄存器,则操作数在堆栈段(SS)中,段地址在SS中,所以操作数的物 理地址为: 物理地址=16d×(SS)十(SP)在汇编语言指令中,可以用符号地址代替数值地址,如: MOV AX,VALUE 此时 VAIUE 为存放操作数单元的符号地址。如写成 MOV AX,[VALUE] 也是可以的.两者是等效的。如果 VALUE 在附加段中,则应该指定段跨越前缀如下; MOV AX, ES:VALUE 或 MOV AX, ES:[VALUE] 直接寻址方式适用于处理单个变量,例如需要处理某个存放在存储器里的变量,可用直 接寻址方式,将该变量先取到一个寄存器中,然后在做处理。 IBM PC 机规定:除在双操作数中,除立即数外,必须有一个操作数使用寄存器方式。 这也是一个常量常常送到寄存器去的原因。 (四)寄存器间接址 操作数的有效地址在基址寄存器 BX、BP 或变垃寄存器 SI、DI 中,而操作数则在存储 器中,如下图所示。 如果指令中指定的寄存器是 BX、SI、DI,则操作数在数据段(DS)中,所以用 DS 寄 存器的内容作为段地址,即操作数的物理地址为: 物理地址=16d×(DS)十(BX) 或 物理地址;16 d×(DS)十(SI) 或 物理地址=16d×(DS)十(DI) 如指令中指定 SP 寄存器,则操作数在堆栈段(SS)中,段地址在 SS 中,所以操作数的物 理地址为: 物理地址=16d×(SS)十(SP)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有