当前位置:首页 » 文件传输 » 不需要访问内存的寻找方式
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

不需要访问内存的寻找方式

发布时间: 2022-06-11 01:59:06

㈠ 为什么汇编语言中有那么多寻址方式 为什么数据交换不能直接从内存到内存

汇编有各种寻址方式是对应硬件实际操作生成的,
硬件上为了访问不同的存储器而要对地址线和数据线做相应的控制,
这些控制动作被分化为相应的寻址方式,每套动作,对应着一个寻址方式。

目前的存储结构,内存的地址线是并联的,而普通的内存只有一套地址线、数据线,读与写操作不能同时进行,这样就只能找个缓存来作为中转,把读写的动作做成顺序操作。

如果你的系统设计成可以使用早先某些高端显卡上用的WRAM内存,那也能做到将数据直接从内存复制到内存而不经过CPU中转。

㈡ cpu访问内存为什么要段

所以说,程序分段是首先是为了重定位,我说的是首先,下面还有理由呢。

偏移地址也要存入寄存器,而那时的寄存器是16位的,也就是一个段最多可以访问到64K。而那时的内存再小也有1M呢,这样通过改变段基址的方式,由一个段变为另一个段,就像一个段在内存中飘移,采用这种在内存中来回挪位置的方式来访问到任意内存位置。

所以说,程序分段又是为了将大内存分成可以访问的小段,通过这样变通的方法便能够访问到所有内存了。

但想一想,1M内存是2的20次方,即需要20位的地址才能访问到,如何做到16位寄存器访问20位地址空间呢?

在8086的寻址方式中,有基址寻址,这是用基址寄存器bx或bp来提供偏移地址。如mov [bx],0x5;这条指令便是将立即数0x5存入ds:bx指向的内存。

大家看,bx寄存器是16位的,它最大只能表示0~0xFFFF的地址空间,即64K,也就是单一的一个寄存器无法表示20位的地址空间——1M。也许有人会说,段基址和段内偏移地址都搞到最大,都为0xFFFF,对不起,即使不溢出的话,其结果也只是由16位变成了17位,即两个n位的数字无论多大,其相加的结果也超不过n+1位,因为即使是两个相同的数相加,其结果相当于乘以2,也就是左移一位而已,依然无法访问20位的地址空间。也许有同学又有好建议了:cpu的寻址方式又不是仅仅这一种,上面的限制是因为寄存器是16位,只要不全部通过寄存器不就行了吗。既然段寄存器必须得用,那就在偏移地址上下功夫,不要把偏移地址写在寄存器里了,把它直接写成20位立即数不就行啦。如mov ax,[0x12345],这样最终的地址是ds+0x12345,肯定是20位,解决啦。不错,这种是直接寻址方式,至少道理上讲得通,这是通过编程技巧来突破这一瓶颈,能想到这一点我觉得非常nice。但是做为一个严谨的cpu,既然宣称支持了通过寄存器来寻址,那就要能够自圆其说才行,不能靠程序员的软实力来克服cpu自身的缺陷。于是,一个大胆的想法出现了。

16位的寄存器最多访问到64k大小的内存。虽然1M内存中可容纳1M/64k=16个最大段,但这只是可以容纳而已,并不是说可以访问到。16位的寄存器超过0xffff后将会回卷到0,又从0重新开始。20位宽度的内存地址空间必然只能由20位宽度的地址来访问。问题又来了,在当时只有16位寄存器的情况下是如何做到访问20位地址空间的呢。

这是cpu设计者在地址处理单元中动了手脚,该地址部件接到“段基址+段内偏移地址”的地址后,自动将段基址乘以16,即左移了4位,然后再和16位的段内偏移地址相加,这下地址变成了20位了吧,行啦,有了20位的地址便可以访问20位的空间,可以在1M空间内自由翱翔了。

明天继续。

㈢ 访问内部RAM单元可以采用哪些寻址方式

1、隐含寻址:这种类型的指令,不是明显地给出操作数的地址。而是在指令中隐含着操作数的地址。

2、立即寻址:指令的地址字段指出的不是操作数的地址,而是操作数本身。

3、直接寻址:在指令格式的地址的字段中直接指出操作数在内存的地址。由于操作数的地址直接给出而不需要经过某种变换。

4、间接寻址:在间接寻址的情况下,指令地址字段中的形式地址不是操作数的真正地址,而是操作数地址的指示器,或者说此形式地址单元的内容才是操作数的有效地址。



(3)不需要访问内存的寻找方式扩展阅读:

在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。当采用地址指定方式时,形成操作数或指令地址的方式。

寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。值得注意的是,在传统方式设计的计算机中,内存中指令的寻址与数据的寻址是交替进行的。

㈣ 指出下列各指令中寻址方式的错误,并说明错误的原因

1、MOV 100H , AX ,立即数不能当做目的地。

2、MOV AH , 1000,AH 容纳不下1000。

3、MOV [CX] , AH CX,不能当做地址指针。

4、ADD AX , BL 参加加法运算的数字位数,必须相同,现在AX、BL位数不同。

如:MOV AX,#5678H 注意:立即数只能作为源操作数,不能作为目的操作数。

指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。立即寻址方式的特点是指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。

(4)不需要访问内存的寻找方式扩展阅读:

各指令中寻址方式的原理:

1、顺序寻址方式

由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令地顺序进行。也就是说,从存储器取出第1条指令,然后执行这条指令;接着从存储器取出第2条指令,再执行第二条指令;接着再取出第3条指令。

这种程序顺序执行的过程,称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令计数器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。

2、跳跃寻址方式

当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。注意,程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

注意是否跳跃可能受到状态寄存器的操作数的控制,而跳跃到的地址分为绝对地址(由标记符直接得到)和相对地址(对于当前指令地址的偏移量),跳跃的结果是当前指令修改PC程序计数器的值,所以下一条指令仍是通过程序计数器PC给出。

㈤ 不需要访问内存的寻址方式有哪些

立即寻址,直接寻址,寄存器寻址,寄存器直接寻址,寄存器间接寻址?

㈥ 计算机题目,根据指令寻址方式哪几种指令执行时间访问内存一次,哪几种指令执行需访问内存两次

指令进行有三个阶段:取指令;解码;执行;
立即寻址在取指令阶段,访问一次内存;在执行阶段,不需要访问内存;(一次)
直接寻址在取指令阶段,访问一次内存;在执行阶段,访问一次内存;(两次)
间接寻址在取指令阶段,访问一次内存;在执行阶段,访问两次内存;(三次)
寄存器直接寻址在取指令阶段,访问一次内存;在执行阶段,不需要访问内存;(一次)
寄存器间接寻址在取指令阶段,访问一次内存;在执行阶段,访问一内存;(两次)
注意一般问访问内存次数是指在执行阶段;

㈦ 高手请进

虚拟内存:比如我的内存128,,分给集成显卡8M,开XP用掉80,火狐用掉30,这时候我想开迅雷,但是迅雷需要30M内存,内存不够了!操作系统就把火狐的30M暂时储存到硬盘上,储存需要的硬盘空间就叫虚拟内存。

缓存一般来说是一级缓存和二级缓存,是CPU内集成的很少的储存空间。一级缓存对CPU性能几乎无影响。一级、二级缓存和CPU核心速度相等,内存读写速度远远慢于二级缓存。而计算机有个原理:CPU80%的时间在处理20%的数据,所以就把这很少但最常用的数据存放在二级缓存中,以提高性能。

AMD k10架构的那个处理器有三级缓存。

㈧ 计算机组成原理中的RR,SS,RS型指令分别指什么指令

寄存器-寄存器(RR)型指令:从寄存器中取操作数,把操作结果放到另一寄存器中,不需要访问内存存储器,因此速度快;

存储器—存储器(SS)型指令:执行此类指令,既要访问内存单元,又要访问寄存器。

寄存器-存储器(RS)型指令:执行此类指令,既要访问内存单元,又要访问寄存器。

16MB=16M×8与8m×16位的存储容量是相等的,现在存储字长是16位,因此我可以把访问16MB等价与访问8M×16位的。

直接寻址范围由形式地址的位数确定,8m的地址范围需要2的23次方,已有形式地址a为7,表示2的7次方,不够,所以采用双字长指令,原来指令格式下面添一行,长度为16位(23-7)。

(8)不需要访问内存的寻找方式扩展阅读:

在计算机科学中,机器指令是用机器字来表示的,表示一条指令的机器字,就称为指令字,通常简称指令。指令格式,则是指令字用二进制代码表示的结构形式,通常由操作码和地址码组成。

操作码字段表示指令的操作特性与功能,地址码字段通常指定参与操作的操作数的地址。非变址命令,也可以称之为非变址指令,是指CPU执行命令时,指令的寻址方式。

寻址即寻找操作数或转移指令中的转移地址。所有具有操作数的指令.都要涉及如何寻找操作数存放地址的问题,只有确定了操作数的存放地址,才能根据指令的操作码,对指令的操作数进行相应的加工。

寻址方式就是规定如何对指令中操作数字段进行解释以找到操作数的方法或是在转移类指令中确定转移的目标地址的方法。前者称为寻找操作数的寻址方式,后者称为寻找指令地址的寻址方式。在计算机中,寻址方式一般分为指令寻址和数据寻址。

㈨ 不需要访问内存的寻址方式是

B立即数寻址

立即寻址:所需的一个操作数在指令的地址字段部分直接给出。
优点:指令执行时间很短,不需要访问内存取数,从而节省了访问内存的时间
缺点:形式地址的位数限制的操作数的范围

㈩ 8086cpu指令中,执行时不需要访问的内存是 A。MOV AL,[BX] B.MOV BH,CH C.ADD DL,[0050H] D.PUSH AX

A答案MOV AL,[BX]是把AL的内容存放到BX指示的内存中,要访问内存
B答案MOV BH,CH 因为BH,CH都属于通用寄存器,所以不访存
C答案ADD DL,[0050h]就是将地址为0050h的内存内容加到DL上,要访存
D答案push ax就是将堆栈的内容push到ax上,堆栈应该是内存的内容吧