变址寄存器

32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。寄存器ESI、EDI、SI和DI称为变址寄存器(IndexRegister),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。

变址寄存器的主要用途

SI:存储器指针,传指令中的源操作数指针。 DI:存储器指针,串指令中的目的操作数指针。
收藏
一键三连
扫一扫,分享海报
4.11变址寄存器[V、Z] 1前言2概 要 3指 令一览4软 元件的作用和功能5软 元件·常数的指定方法6编 程前须知7基 本指令8FNC 00~ FNC 09 程序流程9FNC 10~ FNC 19 传送·比较10FNC 20~ FNC 29 四则·逻辑运算4.11变址寄存器[V、Z] 变址寄存器是除了可与数据寄存器的使用方法相同以外,还可以通过在应用指令的操作数中组合使用其他的软 元件编号和数值,从而在程序中更改软元件的编号和数值内容的特殊寄存器。 4.11.1变址寄存器的编号 变址寄存器[V、Z]的编号如下表所示。(编号以10进制数分配) 仅仅指定变址寄存器V或是Z的时候,分别作为V0、Z0处理。 *1. 关于停电保持的特性可以通过参数进行变更。 4.11.2 功能和构造 1. 16位变址寄存器具有和数据寄存器相同的结构。 2. 32位 修饰32位的应用指令中的软元件时,或者及处理超出16位范围的数值时必须使用Z0~Z7。 如左图所示的V、Z组合,由于FX可编程控制器将Z侧作为32位寄存器的低位 侧动作,所以即使指定了高位侧的V0~V7也不会执行修饰。 此外,作为32位指定时,会同时参考V(高位)、Z(低位),因此一旦V(高位) 侧中留存有别的用途中的数值时,会变成相当大的数值,从而出现运算错 误。 32位变址寄存器的写入实例 即使32位应用指令中使用的变址值没有超出16位数值范围,也请按照上图所 示在对Z进行数值的写入时,使用DMOV指令等的32位运算指令,同时改写V (高位)、Z(低位)。 4.11.3 软元件的修饰 可以被修饰的软元件,极其修饰的内容如下所示。 → 有关变址修饰的使用方法、注意事项,请参考5.7节10进制数软元件·数值: M、S、T、C、D、R、KnM、KnS、P、K 例如,V0=K5,执行D20V0时,对软元件编号为D25(D20+5)的执行指令。 此外,还可以修饰常数,指定K30V0时,被执行指令的是作为10进制的数值K35(30+5)。 8进制数软元件: X、Y、KnX、KnY 例如,Z1=K8,执行X0Z1时,对软元件编号为X10(X0+8: 8进制数加法)的执行指令。对软元件编号为8进制数的 软元件进行变址修饰时,V、Z的内容也会被换算成8进制数后进行加法运算。 因此,假定Z1=K10,X0Z1被指定为X12,请务必注意此时不是X10。 16进制数值: H 例如,V5=K30,指定常数 H30V5 时,被视为 H4E(30H+K30)。此外,V5=H30,指定常数 H30V5 时,被视为 H60(30H+30H)。 变址用V0(V)~V7,Z0(Z)~Z7 16点*1 V 16位Z16位V0~V7 :8点Z0~Z7 :8点V0 (高位) Z0 (低位) V1 (高位) Z1 (低位) V2 (高位) Z2 (低位) V3 (高位) Z3 (低位) V4 (高位) Z4 (低位) V5 (高位) Z5 (低位) V6 (高位) Z6 (低位) 32位V7 (高位) Z7 (低位) FNC 12 DMOV K300 Z2 K300→(V2,Z2)149
8086 CPU 中寄存器总共为 14 个,且均为 16 位。即AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共14 个。而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。通用寄存器AX,BX,CX,DX 称作为数据寄存器:AX (Accumulator):累加寄存器,也称之为累加器;BX (Base):基地址寄存器;CX (C...
06-27
6万+
七种寻址方式(立即寻址、寄存器寻址) 一、立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。例如: MOV AH, 80H ADD AX, 1234H MOV ECX, 123456
1、存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。 内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器。现在的DDR2内存的读写速度一般...
变址寄存器(SI,DI): 首先,变址寄存器和上面介绍的指针寄存器(也就是 BP 和SP),它们的功能其实都是用于存放某个存储单元地址的偏移, 或者是用于某组存储单元开始地址的偏移,即作为存储器指针使用,当然,由于变址寄存器和指针寄存器都是属于通用寄存器, 所以它们也可以保存算术结果或者说是具有暂存数据的功能,但是因为它们不是数据寄存器,所以无法分割成 2 个独立的 8 位寄存
SI和DI称为变址寄存器,在字符串操作中SI作为源指针,DI作为目的指针(ES:DI	;用作存储器指针时可用于寻址 DS:[SI],DS:[BX+DI] BP和SP称为指针寄存器,BP称为基址针,SP为堆栈指针	;BP也可作为存储器指针DS:[bp+si],如果没有段前缀那么BP最为堆栈基址[BP]