精华内容
下载资源
问答
  • 寻找操作数地址的方法共有八种: 寄存器寻址方式 立即数寻址方式 存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式变址和基址寻址方式,基址变址...1,寄存器寻址方式:指令所需的操作数寄存器,按指令

    寻找操作数地址的方法

    共有八种:
    寄存器寻址方式
    立即数寻址方式
    存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式)
    串操作寻址方式
    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端口寻址方式

    展开全文
  • 寄存器寻址方式

    2019-11-19 22:29:13
    微机系统有七种基本的寻址方式:立即寻址方式寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。其中,后五种寻址方式是确定内存单元有效...

    微机系统有七种基本的寻址方式:立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。其中,后五种寻址方式是确定内存单元有效地址的五种不同的计算方法,用它们可方便地实现对数组元素的访问。 

    1. 立即数寻址方式:   MOV AH, 80H   
    2. 寄存器寻址方式:  MOV AX, BX    
    3. 直接寻址方式: MOV BX, [1234H]
    4. 寄存器间接寻址方式: MOV BX,[DI]

    若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;

    若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。

    1. 寄存器相对寻址方式: MOV BX, [SI+100H]
    2. 基址加变址寻址方式: MOV BX, [BX+SI]
    3. 相对基址加变址寻址方式: MOV AX, [BX+SI+200H]

    展开全文
  • 计算机只容许使用bx、si、di、bp寄存器做间接和相对寻址 其中bx为基址存储器,si、di为变址存储器   内存寻址方式:确定访问内存存储单元偏移地址的方式称为寻址...相对基址变址寻址:[基址寄存器+变址寄存器+...

    计算机只容许使用bx、si、di、bp寄存器做间接和相对寻址

    其中bx为基址存储器,si、di为变址存储器

     

    内存寻址方式:确定访问内存存储单元偏移地址的方式称为寻址方式。

    直接寻址:[偏移地址]

    寄存器间接寻址:[基址寄存器/变址寄存器]

    寄存器相对寻址:[基址寄存器/变址寄存器+偏移量值]

    基址变址寻址:[基址寄存器+变址寄存器]

    相对基址变址寻址:[基址寄存器+变址寄存器+偏移量值]

    注意:

    a 格式上的注意,正确区分寻址方式

    b 五种寻址中,均可以使用段前缀     //ds:[0001H]

    c masm编译器编译时,代码中的直接寻址必须采用段前缀的形式

     

    指针寄存器包括堆栈寄存器SP(stack pointer)和基数指针寄存器BP(base pointer),变值寄存器包括源变址寄存器SI(source index)和目的变值寄存器DI(destination index)。这4个寄存器都是16位寄存器,这些寄存器在运算过程中也可以用来存放操作数(只能以字为单位),但经常的用途是在段内寻址时提供偏移地址SP,BP一般与段寄存器SS联用,以确定堆栈寄存器中某一单元的地址,SP用以指示栈顶的偏移地址而BP可作为堆栈区中的一个基地址,用以确定在堆栈中的操作数地址。SI,DI一般与段寄存器DS联用,以确定数据段中某一存储单元的地址,SI,DI具有自动增量和自动减量的功能,这一点使在串操作指令中用做变址非常方便,SI作为隐含的源变址DS联用,DI作为隐含的目的变址和ES连用,从而达到在数据段和附加段中寻址的目的。

     

    BX+SI
    BX+DI
    BP+SI
    BP+DI

     

    1. 直接寻址

    偏移地址值直接出现在执行代码中。

    mov 寄存器,[偏移地址]
    mov [偏移地址],寄存器

     

    2. 寄存器间接寻址

    偏移地址通过寄存器取得使用

    mov 寄存器,[寄存器]
    mov [寄存器],寄存器

    实例:

    assume cs:daima
    daima segment
        mov ax,2000H
        mov ds,ax
    
        mov ax,1122H
        mov cx,3344H
    
        mov bx,0000H
        mov [bx],ax    ;将ax值放入ds 2000:0000
    
        mov bx,0002H
        mov [bx],cx    ;将cx值放入ds 2000:0002
    
        mov ax,4c00H
        int 21H
    daima ends
    end

     

    3. 寄存器相对寻址

    偏移地址值通过[寄存器+偏移量值]的形式运算后获得。

    mov 寄存器,[寄存器+偏移量值]
    mov 寄存器,ds:[寄存器+偏移量值]
    mov [寄存器+偏移量值],寄存器
    mov ds:[寄存器+偏移量值],寄存器

    实例1:

    assume cs:code,ds:data
    data segment
    	db 'abc'
    data ends
    
    code segment
    start:
        mov ax,data
        mov ds,ax
    
        mov bx,0000H
        mov ah,[bx+0000H]
    
        mov al,[bx+0001H]
     
        mov ax,4c00H
        int 21H
    code ends
    end start

    实例2: 

    ;交换ds中偏移地址1和4,2和5,3和6的数据
    assume cs:code,ds:data
    data segment
    	db 'abcdef'
    data ends
    
    code segment
    start:
        mov ax,data
        mov ds,ax
    
        mov bx,0000H
    
        mov cx,3
        A:
            mov ah,ds:[bx]
            mov al,ds:[bx+0003H]
            mov [bx+0003H],ah
            mov [bx],al
            inc bx
        loop A
     
        mov ax,4c00H
        int 21H
    code ends
    end start

    实例3: 

    assume cs:code,ds:data
    data segment
    	db 'abc'
        db 0H,0H,0H
    data ends
    
    code segment
    start:
        mov ax,data
        mov ds,ax
    
    	mov si,0000H
    	mov di,0003H
    
        mov cx,3
        A:
            mov ah,[si]
            mov [di],ah
    
            inc si
            inc di
        loop A
    
        mov ax,4c00H
        int 21H
    code ends
    end start

     

    4. 基址变址寻址方式

    偏移地址值通过[基址寄存器+变址存储器]的形式运算后获得。

    格式:

    mov 寄存器,[基址寄存器+变址寄存器]
    mov [基址寄存器+变址寄存器],寄存器

    例如:

    mov ax,[bx+si]
    mov ax.[bx+di]
    ;不可以这样
    mov ax,[si+di]

    实例:

    ;累计相加偏移地址0002H 3次。
    assume cs:code,ds:data
    data segment
    	db 1H,1H,2H
    data ends
    
    code segment
    start:
        mov ax,data
        mov ds,ax
    
        mov ah,00H
    
        mov bx,0000H
        mov si,0002H
    
        mov cx.3
        A:
            mov al,[bx+si]
            add ah,al
    
            inc bx
            dec si
        loop A
     
        mov ax,4c00H
        int 21H
    code ends
    end start

     

    5. 相对基址变址寻址

    偏移地址值通过[基址寄存器+变址寄存器+偏移量值]的形式运算后获得。

    格式:

    mov 寄存器,[基址寄存器+变址寄存器+偏移量值]
    mov [基址寄存器+变址寄存器+偏移量值],寄存器

    实例:

    ;取出1H、3H放入ah、al
    assume cs:code,ds:data
    data segment
    	db 0H,0H,0H,1H,2H,3H
    data ends
    
    code segment
    start:
        mov ax,data
        mov ds,ax
    
        mov bx,0000H
    
        mov si,0001H
        mov ah,[bx+si+0002H]
    
        mov di,0003H
        mov al,[bx+di+0002H]
     
        mov ax,4c00H
        int 21H
    code ends
    end start

     

     

     

     

    展开全文
  • 基址寻址变址寻址的比较基址寻址主要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,程序运行过程,值是不可变的,而指令字的地址码是可变的。变址寻址

    间接寻址和寄存器寻址的比较

    间接寻址

    优点

    扩大了操作数的寻址范围
    便于编制程序,方便地完成子程序的返回

    缺点

    访存次数多,执行时间长

    寄存器寻址

    优点

    无须访存,减少执行时间
    指令字短,节省存储空间

    基址寻址与变址寻址的比较

    基址寻址主要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序运行过程中,值是不可变的,而指令字中的地址码是可变的。

    变址寻址中,变址寄存器的内容是用户自己设定的,在程序运行过程中是可变的,而指令字中的地址码是不可变的。编制寻址主要用于处理数组等问题,并且特别适合编制循环程序。

    展开全文
  • 常见的寻址方式有立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址和变址寻址等。立即寻址方式中,操作数包含指令;...变址寻址方式中,操作数地址等于变址寄存器的内容加偏移量。 ...
  • 关键字:、立即寻址、寄存器寻址、存储器操作数寻址方式【直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址加变址寻址】、标志寄存器
  • 几个寄存器寻址方式

    2020-12-29 21:49:34
    寻址方式名称: sa:[idata]直接寻址 sa:[bx]寄存器间接寻址 sa:[bp]寄存器间接寻址 sa:[si]寄存器间接寻址 sa:[di]寄存器间接寻址 sa:[bx+idata]寄存器相对寻址 sa:[bp+idata] 寄存器相对寻址 sa:[si+idata] 寄存器...
  • 2、指令寻址与数据寻址指令寻址思维导图顺序寻址跳跃寻址数据寻址直接寻址间接寻址寄存器寻址寄存器间接寻址隐含寻址立即寻址总结偏移寻址基址寻址变址寻址相对寻址堆栈寻址比较 指令寻址 思维导图 顺序寻址 由于...
  • 变址寄存器

    千次阅读 2013-03-28 00:59:55
    寄存器ESI、EDI、SI和DI称为变址寄存器(IndexRegister),它们主要用于存放存储单元段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。变址寄存器不可分割成8位...
  • 8086变址寄存器

    千次阅读 2016-10-06 22:19:17
    变址寄存器(SI,DI): 首先,变址寄存器和上面介绍的指针寄存器(也就是 BP 和 SP),它们的功能其实都是用于存放某个存储单元地址的偏移, 或者是用于某组存储单元开始地址的偏移,即作为存储器指针使用,...
  • 概念 寻址方式就是处理器根据指令给出的地址信息来寻找有效地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。 常用寻址方式 立即寻址 ...寄存器寻址 指定的寄存器存放着操作
  • 变址寄存器(VZ)

    2019-09-26 19:02:42
    前言: 规范:修饰32位操作时不管变址的数有没有超过16位都应该使用32位...变址寄存器的编号和定义: 变址寄存器的功能和构造: 变址寄存器对软元件的修饰: 转载于:https://www.cnblogs.com/iBoun...
  • 三菱plc变址寄存器应用示例 详细讲解了三菱PLC的变址的集中使用方法
  • 了解寄存器:ESI EDI变址寄存器

    万次阅读 2011-02-23 22:43:00
    了解寄存器:ESI EDI变址寄存器
  • 七种寻址方式(立即寻址、寄存器寻址)

    万次阅读 多人点赞 2016-10-04 10:24:34
    七种寻址方式(立即寻址、寄存器寻址) 一、立即寻址方式 操作数作为指令的一部分而直接写指令,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值...
  • 4.4 数据的寻址方式4.4.1 指令和数据的寻址方式4.4.2 数据寻址方式说明4.4.3 立即寻址4.4.4 直接寻址 ...操作数就指令,紧跟操作码后面,作为指令一部分存放内存的代码段,该操作数为立即数,这种寻址
  • 1.寄存器寻址 操作数的值寄存器,指令的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。 例如指令: MOVR1,R2;R1←R2 SUBR0,R1,R2;R0←R1- R2 2.立即寻址 ...
  • ARM基础学习-寄存器寻址方式和指令

    千次阅读 2017-04-30 17:13:02
    寻址方式数据都存在存储器寻址简单地说就是找到存储数据或指令的地址。存储器有很多存储单元,用于存储数据。arm指令
  • 相对基址加变址寻址方式与其它寻址方式之间的变形关系 源操作数 指令的变形 源操作数的寻址方式 只有偏移量 MOV AX, [100H] 直接寻址方式 只有一个寄存器 MOV AX, [BX] 或 MOV AX, [SI] 寄存器间接寻址...
  • 寄存器区别:  1. 寄存器变成32位的。  2.多了一些系统程序用的寄存器:系统地址寄存器、控制... 3....3.寻址方式却别: ... 1.... 2.指令操作数变为32位。... 3.基址寄存器和 变址寄存器更灵活,常数偏移量可为 32位。
  • 寄存器寻址

    万次阅读 2017-04-05 20:24:06
    一、寄存器 总共有14个16位寄存器,8个8位寄存器。   通用寄存器:  数据寄存器:  AH(8位) AL(8位) AX(16位) (AX和AL又称累加器)  BH(8位) BL(8位) BX(16位) (BX又称基址寄存器,唯一作为存储器...
  • 众所周知,对于8086汇编语言,有几大寻址方式,不过我觉得这个好墨迹,会用就可以了,为什么命名这么多,这次只说本质,不说命名,至于命名,还是得知道,毕竟是大部分人公认的,不能反抗这点哦,但是你知道,不代表...
  • 概念: 寻址——找操作数 1,给出操作数; 2,直接按照给出数据为地址,寻址; 3,以给出数据为地址找到数据,再以找到的数据为地址,寻需要的操作数;...AX,10H,采用的是立即数寻址方式,这条指令(包含操...
  • 操作数存储器,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、D I)的内容和指令的8位/16位偏移量之和。其有效地址的计算公式如公式所示。 不使用段超越前缀的情况下,有下列规定:    若...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,580
精华内容 3,432
关键字:

在变址寄存器寻址方式中