精华内容
下载资源
问答
  • 存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式) 串操作寻址方式 I/O端口寻址方式8086采用的是变字长指令格式,指令长度为1~6个字节,第一个字节包含操作码,第二...

    寻找操作数地址的方法

    共有八种:
    寄存器寻址方式
    立即数寻址方式
    存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式)
    串操作寻址方式
    I/O端口寻址方式

    8086采用的是变字长指令格式,指令长度为1~6个字节,第一个字节包含操作码,第二个字节通常表示寻址方式,第三个到第六个字节表示位移量,立即数。

    1,寄存器寻址方式:指令所需的操作数在寄存器中,按指令给出的寄存器地址去获取操作数
    指令代码: 操作码 REG (RI操作数)
    在汇编指令中,寄存器地址直接用寄存器名表示
    2,立即数寻址方式
    指令所需的操作数直接在指令代码中,随着取指令一起取到BIU的指令队列中。
    执行速度快,常用来提供常数这里写图片描述
    这里写图片描述
    在汇编指令中,立即数只能作为源操作数
    在宏汇编中,字符常量的存取 MOV AH,’A’
    字符串常量的存取 MOV DX,”AB”

    3,存储器寻址方式
    以下几种寻址方式,操作数在存储器中。
    汇编中,存储单元地址使用逻辑地址: 段基值:偏移量
    存储器寻址方式:形成操作数逻辑地址的偏移量
    有效地址: 按指令中存取器寻址方式计算,得到的偏移量称为有效地址EA
    有效地址EA是三个地址分量的某种组合:
    (1)位移量:指令代码中的一个8/16位二进制数
    (2)基地址:BX或BPD的内容
    (3)变址量:SI或DI的内容

    根据三个地址分量的不同组合,有4中不同的存储器寻址方式:
    a 直接寻址方式:指令中所需要的操作数直接放在存储器中,操作数的有效地址为有指令代码中的位移量提供
    这里写图片描述
    直接寻址方式可用数值地址或符号地址来表示:
    I 数值地址:MOV BX,[1000H]
    指令中也可以指定跨越前缀来取得其他段中的数据。
    这里写图片描述
    数值地址表示IDE直接寻址方式
    II 符号地址 要区分是字或字节地址
    MOV BX, VAR这里写图片描述
    符号地址表示的直接寻址方式
    MOV DAB,0FH;DAB是字节地址
    MOV CL ,DAB+3
    上述2条指令分别等价于:
    MOV DS:DAB,0FH
    MOV CL,DS:DAB+3

    MOV AX,ES:DAW;DAW是字地址
    b,寄存器间接寻址方式:指令所需的操作数在存储器中,操作数的有效地址EA 直接从SI,DI,BX,BP中获得
    这里写图片描述
    使用SI,DI,BX间接寻址时,隐含使用DS;
    BP间接寻址,则隐含使用SS
    MOV CH,[SI] = MOV CH,DS:[SI]
    MOV [DI],AX = MOV DS:[DI],AX
    MOV AL,[BX] = MOV AL,DS:[DX]
    MOV [BP],DX = MOV SS:[BP],DX
    寄存器间址可用来访问表,一位数组中的元素

    c,变址寻址和基址寻址方式:指令所需的操作数在存储器中,操作数的有效地址EA是两个地址分量之和
    这里写图片描述
    变址寻址:操作数的EA是SI或者DI内容与位移量之和
    基址寻址:操作数的EA是BX或BP内容与位移量之和
    变址或基址使用SI,DI,BX址时,隐含使用DS;
    BP间接寻址,则隐含使用SS
    MOV CH,10H[SI] = MOV CH,DS:10H[SI]
    MOV TAB[DI],AX = MOV DS:TAB[DI],AX
    MOV AL,ARY[BX] = MOV AL,DS:ARY[DX]
    MOV STR[BP],DX = MOV SS:STR[BP],DX
    用基址变址寻址方式可以方便的访问二维数组
    位移量 数组首地址
    基址寄存器 数组元素行址
    变址寄存器 数组元素列址
    这里写图片描述

    段基值 —-隐含有SS提供

    用基址变址寻址方式访问二维数组
    MOV AL, ARRAY[BP][SI]
    这里写图片描述

    存储器操作数寻址方式地址计算小结:这里写图片描述

    4,串操作寻址方式
    数据段中的源串有效地址隐含由SI提供,附加段中的目的串有效地址隐含由DI提供
    SI => 源串有效地址EA
    DI =>目的串有效地址EA
    没完成一次串操作,指令按标志位DF自动修改SI/DI,使其指向下一个串元素的存储单元:
    如:DF = 0,每完成一次字节串操作,SI/DI自动增量1
    如:DF = 1,每完成一次字节串操作,SI/DI自动减量1

    5,I/0端口寻址方式

    展开全文
  • 寻址方式

    千次阅读 2018-01-04 19:59:51
    寻址方式

    2017-1-4

    1.对于指令而言 ,分为顺序寻址以及跳跃寻址

    2.对于数据而言,这就很多了……
    指令的地址码字段通常都不代表操作数的真实地址,把他叫做形式地址A,操作数的真实地址称为有效地址EA,他是由寻址方式和形式地址共同决定的。
    一种一地址的指令格式

    操作码+寻址方式+形式地址A

    (1)立即寻址:A是操作数本身,也就是立即数(换言之,我们可以直接在指令中获得操作数的值而不用访问存储器),A的位数限制了立即数的大小。

    (2)直接寻址:A中存放了操作数的地址,即EA=A,我们只要根据A的值去主存中进行一次访存即可,但是A的位数限制了操作数的寻址范围。

    (3)隐含寻址:指令字中不显式给出操作数的地址,其操作数的地址隐含在操作码或者某个寄存器中。比如说加法指令吧!一地址加法指令只给出了一个操作数的地址,而另一个操作数隐含在了ACC中,这种寻址方式有利于缩短指令的字长。

    (4)间接寻址:指令字中给出操作数所在地址的地址,间接寻址的次数是可以多次的,如果是这样的话,我们需要存储字的首位来标志间接寻址是否结束。这种寻址方式与直接寻址方式相比:
    扩大了操作数的寻址范围,假设指令字长和存储字长均为16位,如果使用直接寻址我们的寻址范围为2^A,但是如果使用间接寻址的话,我们的寻址范围可以达到2^16,当然,如果我们使用了多次间接寻址的话,寻址范围就是2^(16-1)(用一位来判断间接寻址是否结束了)。
    还有便于编制程序。
    缺点是在指令的执行阶段需要一次或者多次访存,这样会延长指令的执行时间。

    (5)寄存器寻址:地址码给出寄存器的编号,操作数在对应的寄存器里面,无需访存,从而加快了指令的执行速度,而且指令中只要给出寄存器中的编号即可(寄存器的个数本身就是有限的),所以指令字比较短。

    (6)寄存器间接寻址:寄存器中不是操作数,而是操作数的地址。

    (7)基址寻址:
    (8)变址寻址:

    (9)相对寻址:有效地址为将程序计数器PC的内容(即当前指令的地址)与指令字中的形式地址A相加而成,即:

    EA=(PC)+A

    这种寻址方式常被用于转移类指令。

    (10)堆栈寻址:既可用寄存器组(硬堆栈)来实现,也可以用主存的一部分空间(软堆栈)。
    堆栈的运行方式分为先进后出以及先进先出两种,前者要求操作数只能从一个口进行读写。
    由于堆栈指针SP中存放的是操作数的有效地址,因而他也属于一种寄存器间接寻址。而且,他也可以视为一种隐含寻址,他的操作数的地址总被隐含在寄存器SP中。

    展开全文
  • 指令中形成操作数或操作数地址的方式称为操作数的寻址方式。一般把指令中直接给出的地址称为形式地址,从形式地址生成有效地址的各种方式称为各种不同的存储器寻址方式,每种寻址方式都有一种对形式地址进行变换处理...

    指令中形成操作数或操作数地址的方式称为操作数的寻址方式。一般把指令中直接给出的地址称为形式地址,从形式地址生成有效地址的各种方式称为各种不同的存储器寻址方式,每种寻址方式都有一种对形式地址进行变换处理的运算规则。

    常用的操作数寻址方式有以下几种:

    1.立即寻址方式

    指令的地址码字段指出的不是地址,而是操作数本身,这种寻址方式称为立即寻址方式。立即寻址由于在取出指令的同时也取出了操作数,所以指令的执行速度很快。但由于操作数是指令的一部分,不便于修改,降低了程序的通用性和灵活性。因此,立即寻址方式只适合于操作数固定的场合,通常用于为主存单元和寄存器提供常数。

    2.直接寻址方式

    直接寻址就是在指令的地址字段中直接指出操作数在主存中的地址,即形式地址等于有效地址,如图4-5所示。这种寻址方式简单、直观,是一种最基本的寻址方式。

    416.gif

    3.间接寻址方式

    与直接寻址方式相比,间接寻址中指令地址码字段所指向的存储单元中存储的不是操作数本身,而是操作数的地址,如图4-7所示。因此,间接寻址方式需要多次访问主存储器,既增加了指令的执行时间,又要占用主存储器单元。但是,这种寻址方式也为编程人员带来了较大的灵活性,实现起来也很简便,而且,间接寻址指令可以访问较大的存储空间,从而扩大指令的寻址能力。由于地址码位数的限制,如果采用直接寻址方式,能够访问的存储空间十分有限,而间接寻址的地址码所指向的存储单元则有足够的位数,因此可以访问全部存储空间。

    417.gif

    4.寄存器寻址方式

    寄存器寻址方式就是指令中的地址码是寄存器的编号,而不是操作数地址或操作数本身。寄存器的寻址方式也可以分为直接寻址和间接寻址,两者的区别在于:前者的指令地址码给出寄存器编号,寄存器的内容就是操作数本身;而后者的指令地址码给出寄存器编号,寄存器的内容是操作数的地址,根据该地址访问主存后才能得到真正的操作数。寄存器寻址方式的优点是用寄存器来暂存操作数或其地址,无需访问主存,速度快。

    5.基址寻址方式

    基址寻址是将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。相对于形式地址,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中进行寻址。

    6.变址寻址方式

    变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化。例如,有一个字符串存储在以AC1H为首址的连续主存单元中,只需要将首地址AC1H作为指令中的形式地址,而在变址寄存器中指出字符的序号,便可访问字符串中的任一字符。

    变址寻址和基址寻址方法十分类似,但用途不同。变址寻址主要用于数组的访问,基址寻址则用于扩大寻址范围,从而在较大的存储空间中进行寻址。

    7.相对寻址方式

    相对寻址,是相对于当前的指令地址而言的寻址方式。相对寻址是把程序计数器PC的内容加上指令中的形式地址而形成操作数的有效地址,而程序计数器的内容就是当前指令的地址,所以相对寻址是相对于当前的指令地址而言的。此时的形式地址通常称为位移量,也就是操作数位置与当前指令位置之间的相对距离,其值可正可负,相对于当前指令地址而浮动。在相对寻址方式中,由于指令的地址和它所涉及的操作数位置相对固定,因此,操作数与指令可以放在主存的任何地方,但仍能保证程序的正确执行。

    指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。

    1.顺序寻址方式

    由于指令地址在主存中顺序排列,当执行一段程序时,通常是一条指令接着一条指令地顺序执行。从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;……,以此类推。这种程序顺序执行的过程称为指令的顺序寻址方式。指令顺序寻址方式的执行示意如图4-3所示。为此,必须使用程序计数器PC来计数指令的顺序号,该顺序号就是指令在主存中的地址。指令逐条顺序执行,由PC+1→PC控制。

    414.gif

    2.跳跃寻址方式

    所谓指令的跳跃寻址,是指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。指令跳跃寻址方式的执行示意如图4-4所示。采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而缩短程序长度,或将某些程序作为公共程序调用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。

    415.gif

    计算机中的堆栈(Stack)是一组能存储和取出数据的暂时存储单元,所有信息的存入和取出均按照后进先出(LIFO)或先进后出(FILO)的原则进行。

    堆栈存取方式决定了其“一端存取”的特点,数据按顺序存入堆栈称为进栈或压栈(Push),堆栈中一个单元的数据称为栈项,栈项按与进栈相反的顺序从堆栈中取出称为出栈或弹出(Pop),最后进栈的数据或最先出栈的数据称为栈顶元素。

    1.寄存器堆栈

    寄存器堆栈又称串联堆栈、硬堆栈。某些计算机在CPU中设置了一组专门用于堆栈的寄存器,每个寄存器可保存一个字的数据。因为这些寄存器直接设置于CPU中,所以它们是极好的暂存单元。CPU通过进栈指令(PUSH)把数据存入堆栈,通过出栈指令(POP)把数据从堆栈中取出。

    寄存器堆栈如图4-14所示:⑴空栈表示栈顶无数据,即位于栈顶的寄存器中无可用的数据;⑵存入数据a,即把数据a存入栈顶,数据a可以来自主存、程序计数器PC等部件;⑶再存入数据b,数据b位于栈顶,先进入的数据a则移至下一个寄存器;⑷执行出栈操作,位于栈顶的数据b被取出,与此同时数据a移至栈顶。

    418.gif

    从寄存器堆栈的数据进栈操作结果可见,最后进栈的数据位于栈顶,位于栈顶的数据出栈时最先被取出。在寄存器堆栈中,还必须有“栈空”和“栈满”的指示,以防在栈空时企图执行出栈、在栈满时企图执行进栈的误操作。这可以通过另外设置一个计数器来实现:每次进栈,计数器加1,计数值等于堆栈中寄存器个数时表示栈满;每次出栈,计数器减1,该计数值等于0时表示栈空。

    寄存器堆栈的特点是仅有一个出入口,后进先出,且堆栈的容量固定,不需要占用主存。

    2.存储器堆栈

    当前计算机普遍采用的一种堆栈结构是存储器堆栈,也就是从主存中划出一块区域来作堆栈,又称软堆栈。这种堆栈的大小可变,栈底固定,栈顶浮动。由于主存的容量越来越大,存储器堆栈能够满足程序员对堆栈容量的要求,而且在需要时可建立多个存储器堆栈。

    这种堆栈有三个主要优点:

    (1) 堆栈能够具有程序员要求的任意长度;

     (2)只要程序员喜欢,愿意建立多少堆栈,就能建立多少堆栈;

    (3)可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址。

    构成存储器堆栈的硬件有两部分,一是在主存中开辟用于堆栈的存储区,二是在CPU中设置一个专用的寄存器——堆栈指针SP(Stack Pointer)来保存栈顶地址。除了硬件之外,还必须有实现进栈、出栈操作的指令。

    作为堆栈的存储区,其两端的存储单元有高、低地址之分,因此,存储器堆栈又可分为两种:从高地址开始生成堆栈和从低地址开始生成堆栈。

    1)从高地址开始生成堆栈(自底向上生成堆栈)

    从高地址开始生成堆栈是一种较常用的方式,这种堆栈的栈底地址大于栈顶地址,在建栈时,SP指向堆栈中地址最大的单元(栈底),每次进栈时,首先把要进栈的数据存入SP所指向的存储单元,然后把指针SP-1;出栈时,先把指针SP+1,然后从SP所指向的存储单元取出数据,如图4-15所示:

    419.gif

    进栈操作:首先数据→Msp,然后指针(SP)-1→SP,Msp表示SP所指定的存储单元;

    出栈操作:首先(SP)+1→SP,然后(Msp)读出,(Msp)表示SP所指定的存储单元的内容。

    2)从低地址开始生成堆栈(自顶向下生成堆栈)

    这种堆栈与从高地址开始生成堆栈正好相反,它的栈底地址小于栈顶地址,建栈时SP指向堆栈中地址最小的单元(栈底)。具体操作如下:

    进栈操作:首先数据→Msp,然后指针(SP)+1→SP;

    出栈操作:首先(SP)-1→SP,然后(Msp)读出。

    存储器堆栈的操作方式与寄存器堆栈不同,它移动的是栈顶,而在寄存器堆栈中移动的是数据。

    堆栈中对数据的操作具有后进先出的特点,因此,凡是以后进先出方式进行的信息传送都可以用堆栈很方便地实现。例如,在子程序的调用中,用堆栈存放主程序的返回地址,实现子程序的嵌套和递归调用;在程序中断处理中,用堆栈存放多级中断的相关信息,实现多级中断的嵌套。




    展开全文
  • 计算机寻址方式

    2021-02-21 05:36:57
    寻址方式 特点 立即寻址 操作数直接在指令中,速度快,灵活性查 直接寻址 指令中存放的是操作数的地址 间接寻址 指令中存放了一个地址,这个地址对应的内容是操作数的地址 寄存器寻址 寄存器...
    寻址方式 特点
    立即寻址 操作数直接在指令中,速度快,灵活性查
    直接寻址 指令中存放的是操作数的地址
    间接寻址 指令中存放了一个地址,这个地址对应的内容是操作数的地址
    寄存器寻址 寄存器存放操作数
    寄存器间接寻址 寄存器内存放的是操作数的地址

     

    展开全文
  • 七种寻址方式

    万次阅读 多人点赞 2018-08-09 17:36:36
    七种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。其中,后五种寻址方式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对...
  • 依次对数组里的元素进行操作。...操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即寻址方式所提供的操作数紧跟在操作码的后面,与操作码一起放在指...
  • 十种寻址方式

    千次阅读 2020-11-21 16:18:46
    首先需要知道的是,数据寻址的方式比较多,在指令字中必须设置一个字段来表明是哪种寻址方式。并且指令的地址字段通常都不表示操作数的有效地址,我们把它称为形式地址,记作 A ,有效地址记作 EA,由寻址方式和形式...
  • 寻址方式 寻址方式是指CPU根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很大的影响。 研究的问题:1、找下一条指令 2、找操作数 指令的寻址方式 顺序...
  • 8086/8088寻址方式

    千次阅读 2021-06-13 10:26:25
    8086/8088寻址方式立即寻址直接寻址寄存器寻址寄存器间接寻址寄存器相对寻址基址—变址寻址基址—变址—相对寻址隐含寻址 所谓寻址方式,主要是指获得操作数所在的地址的方式,在8088/8086系统中,一般将寻址方式...
  • 常用寻址方式介绍

    2021-05-29 14:20:51
    寻址方式 立即数寻址方式 MOV BL,80H MOV AX,1090H 功能:立即数寻址方式只能作为源操作数,主要用来给寄存器或存储单元 值 说明:该寻址方式所提供的操作直接包含在指令中,紧跟在操作码之后,他 为 指令的一部分...
  • 8086 寻址方式

    千次阅读 2015-06-17 23:04:46
    (段超越前缀用来改变默认的段寻址,通常内址寻址是数据段或者堆栈段。...立即数寻址方式主要用来给寄存器和存储单元赋值,因此这种寻址方式不能用于单操作数指令; 若用于双操作数指令,也只能用于源操作数字
  • 一、立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么...
  • 操作数基本寻址方式

    千次阅读 2020-04-16 10:46:14
    操作数基本寻址方式 1.隐含寻址 2.立即寻址 3.直接寻址 4.间接寻址 5.寄存器寻址方式和寄存器间接寻址方式 6.相对寻址方式 7.基址寻址方式 8.变址寻址方式 9.块寻址方式 10.段寻址方式 1.隐含寻址 在指令中不明显的...
  • 指令的寻址方式

    2019-09-27 12:03:58
    什么是寻址方式 汇编指令由操作码字段和操作数字段构成。 对于双操作指令,第一个操作数称为目的操作数,表示操作后的结果;第二个操作数称为源操作数,表示来源操作数。两者以逗号分隔。如: 寻址方式,通俗地...
  • 8086寻址方式 寄存器寻址 操作的数位于寄存器中,可以从寄存器里取得。 mov ax,bx add bx,0xf000 inc dx 立即寻址 操作数在指令中直接给出。 add bx,0xf000 ;源操作数是立即寻址,目的操作数是寄存器寻址 mov dx,...
  • 四种寻址方式

    千次阅读 2019-12-08 15:05:04
    1.立即数寻址 直接在指令中给出操作数,不需要存储单元,执行速度快,但是显然数据也不能... 直接寻址方式: 指令给出有效地址,这使得地址码会很长,通用性也差。 2).间接寻址方式: 指令中给出的是操作数地...
  • 1234h 这种寻址方式用于对存储单元或寄存器赋初值的情况寄存器寻址 由于不需要访问存取器,这种寻址方式速度比较快 例:mov ax, bx直接寻址 直接寻址通常用于处理单个存储器变量的情况,可以...
  • 8086七种寻址方式

    2019-10-07 11:09:05
    寻址方式速度是由指令周期决定的,写一个效率高的程序也就需要了解这些不同指令执行的速度 指令周期:是取出一条指令并执行这条指令的时间 查询指令执行的表可以看出寻址方式排序如下 指令周期 1.寄存器寻址 2...
  • 微机系统有八种基本的寻址方式 (1)立即数寻址方式 操作数地址/变量内存地址 (2)寄存器寻址方式 寄存器 (3)直接寻址方式 [偏移地址] (4)寄存器间接寻址方式 [基址寄存器/变址寄存器] (5)寄存器相对寻址...
  • 8086/8088 寻址方式

    千次阅读 2017-06-26 16:35:05
    这一节讲解8086/8088寻址方式,所谓寻址方式,就是寻找操作数或操作数地址的方式。 寻址方式 8086/8088有七种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,427
精华内容 23,370
关键字:

寻址方式速度的比较