快好知 kuaihz订阅看过栏目

 

寻址是数据恢复技术的基础,是定位数据和扇区的关键。寻址这个概念比较抽象,简单的说是磁头在盘片上定位数据的一个过程。如果你想找到你的计算机中的一个文件,你可能会在Windows中先打开我的电脑、分区、文件夹,再打开你要找的文件。这是表面的寻找文件的过程,而磁头在盘片的寻找过程就是寻址。 寻址在数据恢复中为什么非常重要?因为当数据出现丢失的情况后,你在我的电脑、分区、文件夹下就找不到这个文件了,甚至找不到文件夹和分区。计算机有多种寻址方式,如立即数寻址方式,寄存器寻址,存储器寻址方式,与I/0端口有关的寻址方式,又包括直接端口寻址和间接端口寻址。

逻辑寻址

逻辑寻址是将硬盘所有 扇区认为是一个柱形,扇区从0开始一直排到无穷大。当然硬盘的容量决定 扇区的总数。在逻辑寻址中,某一个 扇区的描述就是某某某某(数字)扇区。

物理寻址

物理寻址也称C.H.S(Cylinder、Head、Sector)寻址。Cylinder、Head、Sector这三个参数在很多硬盘表面的标签上都有标注其数值。这是 硬盘容量大小的计算基础。物理寻址中对某 扇区的表述为某某Cylinder某某Head的某某Sector。

硬盘容量=盘面数× 柱面数×扇区数×512 字节。

寻址方式简介

立即数寻址方式

操作数直接存放在 指令中,紧跟在操作码之后的寻址方式就是立即数寻址方式。例如:MOV AX,2345H MOV AL,0EH 。

寄存器寻址

操作数存放在CPU的内存寄存器时,可在指令中指出寄存器名,这就是寄存器寻址方式。例如:MOV AX,BX ;ADD AX,BX。

存储器寻址方式

8086指令系统提供了以下5种针对存储器的寻址方式。直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址和相对基址加变址寻址。用于说明操作数所在存储单元的地址。由于总线接口单元BIU能根据需要自动引用段寄存器得到段值,所以这五种方式也就是确定存放操作数的存储单元有效地址EA的方法。有效地址EA是一个16位的无符号数,在利用这五种方法计算有效地址时,所得的结果认为是一个无符号数。

(1).直接寻址: 指令中给出的地址码即为操作数的有效地址,就是直接寻址方式

(2).寄存器间接寻址方式

(3).寄存器相对寻址方式

(4).基址变址寻址方式

(5).相对基址变址寻址方式

寻址的区别和应用

逻辑 寻址方式和物理寻址方式目前都在使用,很多软件也都可以用两种寻址方式进行定位。不过,由于物理 寻址方式相对比较复杂,采用三数字进行定位,硬盘大小不同数值上限不同,起始不同(Cylinder和Head从0起始,Sector从1起始)等等原因,在 数据恢复技术中更多的使用逻辑寻址方式完成定位。

寻址操作方法

就是指定指令要进行操作的地址。给定指令操作的地址方法,就是寻址方法。完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。

我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域

2、这个区域中具体的位置比如:AQ2.0

其中的A是指令符,Q2.0是A的操作数,也就是地址。这个地址由两部分组成:Q:指的是映像输出区; 2.0:就是这个映像输出区第二个字节的第0位。由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗。

分类:

直接寻址,简单的说,就是直接给出指令的确切操作数. 直接寻址方式常用于处理内存单元的数据,其操作数是内存变量的值,该寻址方式可在64K字节的段内进行寻址。注意:立即寻址方式和直接寻址方式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量。

间接寻址就是间接的给出指令的确切操作数。间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。

存储器间接寻址指针,是作为指定的存储区域的确切数值单元来运用的。也就是说,指针不包含区域标识,它只是指明了一个数值。

存储器间接寻址的地址给定格式是:地址标识符+指针。指针所指示存储单元中所包含的数值,就是地址的确切数值单元。

存储器间接寻址具有两个指针格式:单字和双字。

单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。

双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。

指针可以存放在M、DI、DB和L区域中,也就是说,可以用这些区域的内容来做指针。

单字指针和双字指针在使用上有很大区别。单字指针的存储器间接寻址只能用在地址标识符是非位的场合;双字指针由于有位格式存在,所以对地址标识符没有限制。也正是由于双字指针是一个具有位的指针,因此,当对字节、字或者双字存储区地址进行寻址时,必须确保双字指针的内容是8或者8的倍数。

投稿
非常不爽,删了吧! 相关词条:其他 打开