这篇文章给大家聊聊关于段基址和偏移 *** ,以及什么叫段基 *** ,什么叫偏移 *** 对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
本文目录
- 汇编语言中有效 *** 和偏移 *** 的区别
- 偏移量是什么意思什么是偏移 ***
- 20位 *** 线的cpu段 *** 和偏移 *** 允许取值范围
- 汇编中段 *** 和基 *** 是什么意思
- 段 *** ,偏移 ***
- 关于8086寻址方式
- 下列寄存器组中在段内寻址时可以提供偏移 *** 的寄存器组是
一、汇编语言中有效 *** 和偏移 *** 的区别
这里有三个概念你需要明白 1物理 *** 2.逻辑 *** (有效 *** )
在80x86里总线接口部件BIU提供了16双向数据总线 20位 *** 总线
8086更大寻址1MB的存储空间但是在CPU内部寄存器结构都是16位显然不能满足20位的 *** 寻址要求所以就将1MB的空间划分出若干个逻辑段每个段更大位 *** KB段用一个段 *** 来标识段寄存器就是用来存放段的起始 *** 的因此物理 *** 有段 *** 和段内偏移量 *** 两部分组成
有效 *** 是这样表示的:xxxx:yyyy前四位是段的起始 *** 后四位是在本段内的偏移 *** 就是偏移量这就是逻辑 ***
而物理 *** 是20位的它是怎样得到的呢?
使段 *** 左移一位这样就成了xxxx0然后在加上yyyy这个偏移 ***
就得到了所谓的物理 *** 了这样就得到了公式:
物理 *** =段 *** *16(就是相当于左移一位)+偏移 *** ;
二、偏移量是什么意思什么是偏移 ***
1、问题一:什么是偏移量偏移量表示的就是相对位置,而不是针对起始点的绝对位置。
2、就像在功上的一个点,它距起始点的距离就是绝对长度;而距中途某个点的距离就是相对于中途这个点的偏移量。
3、问题二:什么是偏移量简单说就是从同一个基准起开始算起的不同的那数量就叫从这个基准处的偏移量。
4、问题三:什么是偏移量!汇编语言中的定义为:
5、把存储单元的实际 *** 与其所在段的段 *** 之间的距离称为段内偏移,也称为“有效 *** 或偏移量”。亦:存储单元的实际 *** 与其所在段的段 *** 之间的距离。本质其实就是“实际 *** 与其所在段的段 *** 之间的距离”
6、储通俗一点讲,内存中存储数据的方式是:一个存储数据的“实际 *** ”=段首 *** +偏移量,
7、你也可以这样理解:就像我们现实中的“家庭 *** ”=“小区 *** ”+“门牌号”
8、上面的“偏移量”就好比“门牌号”
9、其实就相当于C++的指针一样啦,指出确切的 *** 而已……
10、如果还有不懂的,你可以hi我,我可以跟你聊聊……
11、问题四:请问偏移 *** 和偏移量有什么区别偏移 *** 从基址开始计算
12、偏移量是距离从当前指令开始计算
13、汇编语言一般用的是偏移量(跳转指令)
14、问题五:什么是文件偏移量文件偏移量就是指从指 *** 置向前或向后移动的字节数,偏移量是用来从文件中找到所用数据时用的,通常偏移量分三种,一个是从文件开头向后移动若干字节来寻找目标(这个是没有符号的,因为开头的前面没有数据),第二个是从文件结尾向前移动若干字节找到目标(同样没有符号),第三个是相对位置,是从文件当前位置向前或向后移动寻找(有符号)。
15、文互就像一本书,老师经常会说从第几段读到第几段,电脑从文件中读数据也是一样,但总要有人告诉他要读的东西在哪,这就需要偏移量,如果我要从一个文件中找到一段数据,必须知道这数据开头在哪,结尾在哪,这就需要偏移量来记录,通常偏移量都会记录在文件头,也可以记录在另一个文件里,用于查找想要的文件内容。。。
16、问题六:汇编中偏移量的作用是什么?和c语言中的指针比较的相似。都是为了 *** 程序的位置用的。比如:int a[30],int*工oint;
17、*(point+1)就是数组的第二个元素。
18、问题七:段 *** 和偏移 *** 是什么举个很简单的例子:如果说 *** 用01表示中国,02表示美国,这里的01和02表示段 *** 。而各个国家的首都也是01,这个01就是偏移 *** 。那么0101就表示北京,0201表示华盛顿,这里段 *** 加偏移 *** 就能找到具体的城市了。
19、问题八:J *** A内存偏移量是什么意思 J *** A是没有内存便宜量说川的,要是有了这个就不能叫j *** a了,这也是j *** a刚出来受程序员追捧的原因
20、 J *** A里面有偏移 *** 的说法,即就是在数组中。数组名保存的是数组的首 *** ,数组实际的内存是一块连续的内存区域。所以ary[i]就是相对数组首 *** 的便宜量,即就是根据首 *** 和便宜量就可以知道便宜后的 *** ,这也是为什么在j *** a中你可以用ary[i]访问元素的根本原因。
21、这些内存偏移都很底层的了哦。你做什么的要了解这个呢?
22、问题九:请问C语言中索引下标偏移量是什么例如 int index[20];对于int index[20];
23、索引与下标是一样的,就是[]中的数字
24、偏移量就是下标([]中的数字减0)
三、20位 *** 线的cpu段 *** 和偏移 *** 允许取值范围
1、你对段 *** 的理解有偏差。段 *** 是指段的起始 *** ,是小段的首 *** ,它的特点是20位物理 *** 的更低4位为全0,所以用段寄存器来存放高16位,所以它的范围为0000H~FFFFH。当用段 *** 和偏移 *** (范围为0000H~FFFFH)形成物理 *** 时,先将段 *** 左移4位,即相当在低位添4个0,形成段首 *** ,再加偏移 *** 。
2、ffff:fff0的物理 *** 为10FFE0H,感觉超出范围了,但实现上段 *** 更大值可以为FFFFH,偏移 *** 更大值也可以为FFFFH,即FFFFH:FFFFH是正确的逻辑 *** 。
四、汇编中段 *** 和基 *** 是什么意思
1、分类:电脑/ *** >>程序设计>>其他编程语言
2、段 *** 其实就是一种基 *** ,但基 *** 并不等于就是段 *** 。
3、所谓基 *** ,顾名思义就可以理解为基本 *** ,他是相对偏移量的计算基准。
4、在实模式下,通常都是以段+偏移来 *** *** ,因此说,这时,段 *** 是基 *** 的一种。但是在堆栈上,常常不以ss寄存器来作为定址基准,而是经常用bp寄存器来定址,因此,此时堆栈段的段址就不能说是基 ***
5、而保护模式下,不再有“段”的概念,这时的段寄存器里保存的是“段选择子”,根基 *** 根本就是两回事。
五、段 *** ,偏移 ***
1、数据是储存在内存里的,你说的物理 *** 其实就是实际内存 *** 。
2、逻辑 *** 是程序中使用的 *** ,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。
3、物理 *** 也叫实际 *** 或绝对 *** ,是CPU访问存储器时实际使用的 *** ,为20位 *** 。
4、段 *** 指的是段起始 *** 的高16位
5、偏移 *** 指的是段内相对于段起始 *** 的偏移值(16位),偏移 *** 是相对而言的
6、在汇编中,内存中的一个物理 *** 是可以映射到一个或多个逻辑段中的,那这几个逻辑段就会产生关系,邻接啊,重叠啊,间隔啊,给你个图你看一看就明白了
六、关于8086寻址方式
1、寻址方式是指在指令中用以说明 *** 作数所在 *** (位置)的 *** 。
2、段超越不是按照 *** 的约定,而是在指令中指定某一段寄存器作为存储器 *** 作数的段 *** 。
3、[注]8086/8086指令 *** 对存储单元的访问,其段 *** 都是从 *** 事先约定好的段寄存器中获取,若不遵循 *** 的约定,则要制定段寄存器,即段超越。
4、(1)立即寻址方式: *** 作数含在指令代码中,由指令直接给出。
5、(2)寄存器寻址方式:指令中指定某个寄存器的内容作为 *** 作数。
6、(3)直接寻址方式:指令中直接给出 *** 作数的 *** (偏移 *** )。
7、(4)寄存器间接寻址方式:指令中指定某个寄存器(SI、DI、BX、BP)中的一个内容作为 *** 作数的 *** (偏移 *** )。
8、(5)寄存器相对寻址方式:指令中指定某寄存器内容与一个位移量相加作为 *** 作数的 *** (偏移 *** )。
9、(6)基址变址寻址方式:指令中,指定一变址寄存器内容与基址寄存器内容相加作为 *** 作数的 *** 。
七、下列寄存器组中在段内寻址时可以提供偏移 *** 的寄存器组是
1、BP和SP寄存器称为指针寄存器,与SS联用,为访问现行堆栈段提供方便。通常BP寄存器在间接寻址中使用, *** 作数在堆栈段中,由SS段寄存器与BP组合形成 *** 作数 *** 即BP中存放现行堆栈段中一个数据区的“基址”的偏移量,所以称BP寄存器为基址指针。
2、寄存器SI和DI称为变址寄存器,通常与DS一起使用,为访问现行数据段提供段内 *** 偏移量。在串指令中,其中源 *** 作数的偏移量存放在SⅠ中,目的 *** 作数的偏移量存放在DI中,SI和DI的作用不能互换,否则传送 *** 相反。在串指令中,SI、DI均为隐含寻址,此时,SI和DS联用,Dl和ES联用。
3、在计算机及其他计算 *** 中,寄存器是一种非常重要的、必不可少的数字电路苛件,它通常由触发器(D触发器)组成,主要作用是用来暂时存放数码或指令。一个触发器司以存放一位二进制代码,若要存放N位二进制数码,则需用N个触发器。
4、寄存器应具有接收数据、存放数据和输出数据的功能,它由触发器和门电路组成。只有得到“存入脉冲”(又称“存入指令”、“写入指令”)时,寄存器才能接收数据;在得到“读出”指令时,寄存器才将数据输出。
关于段基址和偏移 *** 的内容到此结束,希望对大家有所帮助。