精华内容
下载资源
问答
  • (1) 读写最好还是不要多线程,硬盘读写的速度有限,单线程时已经满负荷了,多线程又会增加线程之间的切换,会增加时间。  如果想增加读写速度,应该增加硬盘,做raid (2)首先是硬盘的写入是串行的,CPU的计算...

    (1) 读写最好还是不要多线程,硬盘读写的速度有限,单线程时已经满负荷了,多线程又会增加线程之间的切换,会增加时间。

               如果想增加读写速度,应该增加硬盘,做raid

    (2)首先是硬盘的写入是串行的,CPU的计算才是并行的,如果你偏重计算那么多线程能提高,要不怎么叫做并行计算呢;

              如果侧重存储,除非数据量达到足以体现优势的程度,否则加上线程之间切换的损耗当然会效率更加地下。

    (3)这个是按照算法来说的,目前来说大多数的算法都是很快的,瓶颈都在磁盘的IO上,我们针对大多数的算法都进行过测试,基本一半以上的时间都耗费在磁盘的IO上。

              比如我处理一个影像,处理数据用了1分钟,写入图像用了2分钟,那你把你的算法优化的很牛逼,10秒中搞定,你的效率提高了多少,但是如果我多线程写入的话,

             我效率提高一倍,也就是写入图像用了1分钟,那这个效率明显比你优化你的算法来的实惠。这个东西还是要针对算法来说的。

    (4)磁盘IO单线程顺序写时最快的,如果多线程写,磁盘的磁头要不断重新寻址,所以写入速度反而会慢。

    参考:http://blog.csdn.net/chenyujing1234/article/details/7694201

    展开全文
  • 直接,间接,立即三种寻址方式指令的执行速度,由快至慢的排序是____ 正确答案: C 你的答案: C (正确) ...立即寻址就是指令当中自带数据,直接读取,最快; 直接寻址就是指令中存放的是地址,直

    直接,间接,立即三种寻址方式指令的执行速度,由快至慢的排序是____

    正确答案: C   你的答案: C (正确)

    直接,立即,间接
    直接,间接,立即
    立即,直接,间接
    立即,间接,直接

    立即寻址就是指令当中自带数据,直接读取,最快;
    直接寻址就是指令中存放的是地址,直接解析这个地址;
    间接寻址就只指令中存放的是地址的地址,或者是存放地址的寄存器,最慢。

    展开全文
  • 0 前言 众所周知,对于8086汇编语言,有几大寻址方式,不过我觉得这...看了很多资料,让人眼花缭乱,各种专业词汇让人眼花缭乱,扑朔迷离,我直接用简练的语言说明。 寻址,就是找数据 寻址方式,就是找数据的方...

    0 前言

    众所周知,对于8086汇编语言,有几大寻址方式,不过我觉得这个好墨迹,会用就可以了,为什么命名这么多,这次只说本质,不说命名,至于命名,还是得知道,毕竟是大部分人公认的,不能反抗这点哦,但是你知道,不代表你真的要这么去想。

    1 何为寻址?何为寻址方式?

    看了很多资料,让人眼花缭乱,各种专业词汇让人眼花缭乱,扑朔迷离,我直接用最简练的语言说明。

    • 寻址,就是找数据
    • 寻址方式,就是找数据的方法

    接下来,根据数据的位置,我再细说一下各种寻址方式。

    2 立即数寻址

    一句话,在指令中找数据

    访问方式: 找指令的时候,顺便将数据带过来了,怎么找指令就怎么找它。

    举例:

    mov ax,1000h
    

    1000h就是立即数,也就用到了立即数寻址

    3 寄存器寻址

    一句话,在寄存器中找数据

    访问方式: 直接写上寄存器的名字,就能访问了。

    举例:

    mov ax,1000h
    

    ax就是寄存器的名称,也就用到了寄存器寻址

    4 存储器寻址

    一句话,在存储器中找数据。(这里的存储器,通常情况下指的是主内存)

    访问方式: 表示出存储单元的地址,就能访问了。

    唯独存储器寻址比较麻烦,因为它表示地址的方式有很多种

    但是在我这里,也就一句话,地址的形成方式是:BX,BP,SI,DI和立即数的各种组合

    其实也就这些而已,只不过还有一些其他的规则限定,我也来细说一下(顺便说一句,这些东西,先看懂理解,然后自己动手试一下,多试试就学会了,不要背)。

    BX —— based register——基地址寄存器
    BP —— base point——基础指针
    SI —— source index——源变址寄存器
    DI —— destination index——目的变址寄存器

    先给出你英文全称,你就很快能够知道,为什么是这几个寄存器了。

    4.1 语法格式

    mov ax,dataSegmentName
    mov ds,ax
    mov 目标,[address]
    

    使用存储器寻址的时候,需要

    1. 设置好DS的值
    2. 再设置[address]的值,address的内容,就是上面说的

    4.2 各种存储单元地址的生成方式

    这里,我结合大家公认的命名,以及我自己的观点,阐述这些内容。

    不管是什么寻址方式,本质就是为了生成address的值,生成数值的本质,就是我说的5个东西(bx,bp,si,di,立即数)进行基本的数学运算

    1. 寄存器直接寻址
      由立即数提供偏移地址。
    mov ax,ds:[1000h]
    

    在汇编语言中,立即数作为偏移地址,前面需要显式地加上提供段地址的寄存器,另外,这种显式的方式,一样可以应用于后面的方式,但是不是强制的。

    1. 寄存器间接寻址
      bx,si,di提供偏移地址,注意没有BP,至于原因,与硬件设计和语法设定有关,不必追究。
    mov ax,[bx] ; 也可以写上 mov ax,ds:[bx]
    mov ax,[si]
    mov ax,[di]
    

    另外,也可以使用其他段寄存器(ss,cs,es)提供段地址,显示加上就可以,mov ax,ss:[bx],这样就由ss提供段地址,bx提供偏移地址。

    1. 基址寻址
      bx + 位移量bp + 位移量提供偏移地址。

    特殊:只有bp提供偏移地址的时候,默认ss寄存器提供段地址,其他的默认ds。

    mov ax,[bx + 10H] ; 本质 mov ax,ds:[bx + 10H]
    mov ax,[bp + 10H ]; 本质 mov ax,ss:[bp + 10H]
    

    另外,在寻址范围之内,位移量可正可负可为0,下面的4,5也是这样。

    1. 变址寻址
      si + 位移量di + 位移量提供偏移地址。
    mov ax,[si - 10h]
    mov ax,[di - 10h]
    
    1. 基址变址寻址
      1个基址寄存器 + 1个变址寄存器 + 位移量提供偏移地址,只有含有BP,就是SS提供段地址。
    mov ax,[bx + si + 10h]
    

    4.3 位移量为什么还可以是负数?

    首先,你需要了解的是,这里的负数是十进制的负数,编码方式是二进制补码

    位移量是正数,就代表在基础之上,加了东西
    位移量是负数,就代表在基础之上,减了东西

    说白了就是,可加可减,反正都是找数据,怎么找都可以,画个图你就明白了。

    在这里插入图片描述

    你可能问,如果是bx - 11h,但是bx < 11h,不是成了负数?注意,在二进制世界,减过头了,叫溢出,是正溢出,溢出的结果,就是循环回去。 我再画个图:
    在这里插入图片描述
    对于有符号数

    正溢出:两数运算,大于最大的正数,进入负数区域
    负溢出:两数运算,小于最小的负数,进入正数区域

    4.4 小结

    注意,位移量其实就是个常数,也可以说成立即数,大多数情况不用区分。

    1个:[常数][bx][si][di]
    2个:[bx + 位移量][bp + 位移量][si + 位移量][di + 位移量]
    3个:[(bx或bp)+ (si或di)+ 位移量],注意,不可以是[bx + bp + 位移量][si + di + 位移量]

    4.5 思想方法

    需要注意的是,以上是数学运算,都是加减法,但是这只是在8086中,未来,还会有乘法的出现,但是依然没有脱离本质,address = { {BX,BP,SI,DI和立即数} 的基本数学混合运算}

    希望你明白,之所以不要你去专注于各种被限定的寻址方式,是因为那些不是本质,掌握本质,把握知识源头,才能够更好地应对未来。

    在x86-32汇编语言中,地址的生成方式,又有所改变。
    例如:mov dword ptr [ebp+eax*4-6Ch],edx,如果你记忆的是8086汇编于寻址方式,那么这个新的方式,你依然要去记忆,但是如果你掌握的是本质,你就知道,这不过是在生成地址的过程中,增加了一个乘号而已,之后你再去探索一下,为什么增加这个乘号,你就可以快速透彻理解和掌握它了。

    5 注意事项

    需要注意的是,这些理解,是为了让你抓住本质,但是并不代表,你只知道这些就可以了,内些杂乱的命名,依然有存在的价值,你同样需要掌握。

    最后,还有一个重要的感悟,那就是任何操作数,都需要应用到这些寻址方式,因为计算机的本质就是处理数据,数据又需要通过寻址来找到

    推荐阅读:计算机处理信息的本质,是二进制数的运算(本文第2节)

    展开全文
  • 寻址模式

    千次阅读 2019-12-08 12:52:24
    寻址模式(代码后补) 立即(数)寻址:指令中的形式地址部分,不是操作数的地址,而是操作数本身。 特点:指令执行阶段CPU不访问主存,而形式地址的位数限制了立即数的范围。 直接寻址:指令中的形式地址部分...

    寻址模式(代码后补)

    1. 立即(数)寻址:指令中的形式地址部分,不是操作数的地址,而是操作数本身。
      特点:指令执行阶段CPU不访问主存,而形式地址的位数限制了立即数的范围。
    2. 直接寻址:指令中的形式地址部分就是操作数的实际地址。
      特点:在执行阶段访问了一次储存器,而形式地址的位数限制了指令操作数的寻址范围,地址不易修改。
    3. 隐含寻址:在指令中隐含着操作数的地址。
      如单地址的指令格式,就不是明显地在地址字段中指出第二操作数的地址,而是规定累加器ACC作为第二操作数,指令格式明显指出的仅是第一操作数的地址。因此,累加器ACC对单地址指令格式来说是隐含地址。
      隐含寻址的优点是有利于缩短指令字长;缺点是需增加硬件。
    4. 间接寻址:指令中的形式地址不是操作数的地址,而是操作数地址的地址,即间接寻址是相对于直接寻址而言的,指令地址字段的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说是D单元的内容才是操作数的有效地址。
      作用:扩大了寻址范围,便于编址转移程序。
    5. 寄存器寻址:指令中的形式地址直接指出寄存器的编号,操作数储存于寄存器中。特点:执行阶段不访问主存,只访问寄存器,执行速度快,可缩短指令字长。
    6. 寄存器间接寻址:指令中的形式地址为寄存器的编号,寄存器的内容是操作数的有效地址。
      特点:有效地址在寄存器中,操作数在储存器中,执行阶段访问主存便于编制循环程序。
    7. 基址寻址:隐式寻址:基址+形式地址;显式寻址:采用通用寄存器R0内容不变,形式地址可变。
      基址寻址是将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,EA=(BR)+A。其中基址寄存器既可采用专用寄存器,也可以采用通用寄存器。
      基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。
      基址寻址的特点是可扩大寻址范围(基址寻址的位数大于形式地址A的位数);用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可用于编制浮动程序。
    8. 变址寻址:有效地址EA等于指令中的形式地址A与编制寄存器IX的内容相加之和,即EA=(IX)+A,其中IX为变址寄存器(专用),也可用通用寄存器作为变址寄存器。
      变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(作为偏移量),形式地址A不变(作为基地址)。
      变址寻址的优点是可扩大寻址范围(变址寄存器的位数大于形式地址A的位数),在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任意数据的地址,特别适合编制循环程序。
      显然,变址寻址与基址寻址的有效地址形成过程及其相似。但从本质上来讲,两者有较大区别。基址寻址主要用于为多道程序或数据分配存储空间,故基址寄存器的内容通常由操作系统和管理程序确定,在程序的执行过程中其值不可变,而指令字中的A是可变的;变址寻址主要用于处理数组问题,在变址寻址中,变址寄存器的内容是由用户设定的,在程序执行过程中,其值可变,而指令字中的A是不可变的。
    9. 相对寻址:有效地址为程序计数器PC的值与形式地址之和。相对寻址的优点是操作数的地址不是固定的,它随着PC的值得变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动,相对寻址广泛应用于转移指令。
      对于转移指令JMPA,当CPU从存储器中取出一个字节时,会自动执行(PC)+1->PC.若转移指令的地址为X,且占2个字节,在取出该指令后PC的值会增2,即(PC)=X+2,这样在执行完该指令后,会指定跳转到X+2+A的地址继续执行。
    10. 堆栈寻址:堆栈是存储器(或专用寄存器组)中一块特定的按“先进后出(LIFO)”原则管理的存储区,该存储区中被读、写单元的地址是用特定的寄存器给出的,该寄存器称为堆栈指针(SP)。堆栈可分为硬堆栈和软堆栈两种。
      寄存器堆栈又称为硬堆栈。寄存器堆栈的成本比较高,不适合做大容量的堆栈;而从主存中划出一段区域来做堆栈是最合算且最常用的方法,这种堆栈称为软堆栈。
      在采用堆栈结构的计算机系统中,大部分指令表面上都表现为为无操作数指令的形式,因为操作数地址都隐含使用了SP。通常情况下,在读写堆栈中的一个单元的前后都伴有自动完成对SP内容的增量或减量操作。
      在这里插入图片描述
    展开全文
  • 立即寻址,直接寻址,间接寻址

    千次阅读 2018-06-22 14:36:29
    立即寻址就是指令当中自带数据,直接读取,最快;直接寻址就是指令中存放的是地址,直接解析这个地址;间接寻址就只指令中存放的是地址的地址,或者是存放地址的寄存器,最慢。总共有14个16位寄存器,8个8位寄存器 ...
  • 一、立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么...
  • 寻址方式

    千次阅读 2017-09-26 16:24:48
    一、指令寻址  1、顺序寻址方式  指令在内存中按顺序排放,依次取出必须使用程序计数器(又称指令计数器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。  2、跳跃寻址方式  转:当程序转移执行的顺序...
  • 一、什么叫寻址空间?  寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的 ,CPU在运算的时候需要把数据提取出来就需要知道数据在那里...
  • IndexR的存储格式是目前查询速度最快的开源大数据格式,扫描速度是Parquet的2~4倍,在添加索引之后查询速度普遍提升十几倍以上。适合于大数据的各种场景,包括离线和在线的各种统计分析,和快速过滤查询。 它最...
  • 计算机只容许使用bx、si、di、bp寄存器做间接和相对寻址 其中bx为基址存储器,si、di为变址存储器   内存寻址方式:确定访问内存存储单元偏移地址的方式称为寻址方式。 直接寻址:[偏移地址] 寄存器间接寻址:...
  • 8086寻址方式 寄存器寻址 操作的数位于寄存器中,可以从寄存器里取得。 mov ax,bx add bx,0xf000 inc dx 立即寻址 操作数在指令中直接给出。...源操作数是立即寻址,目的操作数是...以上两种寻址速度,但是 寄存器
  • 该题目来自58同城的二面,用最快速度求两个数组之交集算法。 比如A={6,2,4,1},B={2,9,4,3},那么A&amp;B={2,4}。   算法一:在大多数情况,也就是一般的情况下,大家都能想出最暴力的解法,通常也...
  • 内存寻址

    千次阅读 2011-07-07 14:39:55
    <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm ... 内存寻址内存地址使用用80x86微处理器时,必須区分以下三种不同的地址逻辑地址包含在机器语言指令中用来指定一个操作数或一条指令的地址。这种寻址有80x
  • 七种寻址方式

    万次阅读 多人点赞 2018-08-09 17:36:36
    七种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。其中,后五种寻址方式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对...
  • 一、什么叫寻址空间? 寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的 ,CPU在运算的时候需要把数据提取出来就需要知道数据在那里 ,这...
  • hjr-汇编:关于寻址

    2016-05-19 12:02:34
    汇编做的所有事,传输,运算之类的都是寻址 寻址分为4种 立即寻址(绝对寻址):直接操作一个数 ...寄存器是在做到CPU内部的,运算速度最快,寄存器>高速缓存(check)>RAM>ROM>FLASH 比...
  • 寻址技术

    千次阅读 2006-03-31 09:34:00
    寻址技术主要指寻找数据及其他信息的地址的技术,是软件与硬件的一个主要分界面,是计算机系统结构的一个重要组成部分。寻址技术主要研究内容有编址方式、寻址方式、定位方式。主要研究对象为寄存器、主存储器、堆栈...
  • 十种寻址方式

    千次阅读 2020-11-21 16:18:46
    寻址方式 寻址方式分为指令寻址和数据寻址。 一、指令寻址 指令寻址分为顺序寻址和跳跃寻址。 顺序寻址是通过程序计数器PC加1自动形成下一条指令的地址。 跳跃寻址是通过转移类指令实现。 二、数据寻址 首先...
  • 四种寻址方式

    千次阅读 2019-12-08 15:05:04
    直接在指令中给出操作数,不需要存储单元,执行速度快,但是显然数据也不能冗长,通用型性差,一般用来指定一些要求不高的整形整数。 2.寄存器寻址 操作数来源于寄存器,结果也写回寄存器。显然这个主要用到...
  • 指令中形成操作数或操作数地址的方式称为操作数的寻址方式。一般把指令中直接给出的地址称为形式地址,从形式地址生成有效地址的各种方式称为各种不同的存储器寻址方式,每种寻址方式都有一种对形式地址进行变换处理...
  • CPU寻址范围

    2014-07-03 09:59:21
    一、寻址空间  寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的 ,CPU在运算的时候需要把数据提取出来就需要知道数据在那里 ,这...
  • CPU寻址问题

    2015-07-01 10:13:45
     寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的 ,CPU在运算的时候需要把数据提取出来就需要知道数据在那里 ,这时候就需要挨家挨户...
  • ARM的九种寻址方式

    千次阅读 2020-03-23 20:40:26
    立即数寻址2.寄存器寻址3.寄存器间接寻址4.寄存器偏移寻址5.寄存器基址变址寻址6.批量寄存器寻址7.相对寻址8.堆栈寻址9.块拷贝寻址 寻址方式就是CPU根据指令中的地址信息,找出物理地址也就是内存地址的方式,通俗...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,079
精华内容 17,631
关键字:

寻址速度最快的