计算机组成:解疑补漏之mov指令与操作数寻址方式(代码片段)

zealyoung zealyoung     2022-12-10     574

关键词:

MOV指令以及操作数的寻址方式

  1. 偏移地址在指令中,操作数在内存中
    MOV指令默认的操作数存储在DS中(数据段寄存器);此时采用段加偏移

  2. 偏移地址在寄存器中,操作数在内存中
    能够存储偏移地址的寄存器:BX、BP、SI、DI(此时用作数据寄存器)
    在段寄存器没有指定的情况下,BP对应SS;BX、SI、DI对应DS。
    比如: MOV AX, [BP] #源操作数的物理地址:SS*16 + BP

  3. 第二种情形的延申
    比如: MOV AX, [BP+15H] #源操作数的物理地址:SS*16 + BP + 15H

  4. 基址加变址寻址方式
    用一个基址寄存器(BX和BP)和一个变址寄存器(DI和SI)值,相加结果作为操作的偏移地址(SI源变址寄存器,DI目的变址寄存器);
    BP对应SS(因为BP本身就用于堆栈操作,所以对应SS堆栈段寄存器);
    BX对应DS(同样BX本身就是数据寄存器,所以对应DS数据段寄存器);
    比如:
    MOV AX, [BX+SI] #源操作数的物理地址:DS*16 + BX + SI
    MOV AX, [BP+DI] #源操作数的物理地址:SS*16 + BP + DI

  5. 第四种情形的升级
    基址加变址加相对寻址
    比如:
    MOV AX, [BX+SI+10H] #源操作数的物理地址:DS*16 + BX + SI + 10H
    MOV AX, [BP+DI+10H] #源操作数的物理地址:SS*16 + BP + DI + 10H

第四第五两种情形,都必须是一个基址加一个变址。

如此,就能很轻松解决下面的三道题了

设CS=2500H,DS=2400H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址。
MOV AX,[2000H] ?24000H + 2000H = 26000H√
MOV AX,[BP+SI+4] ?24300H + 0200H + 0010H + 4 = 24514H √
MOV AX,[DI+100H] ?24000H + 0206H + 100H = 24306H √

总结于下

操作数可能在的三个位置:指令、寄存器、内存;
指令:立即数寻址(直接给出立即数,也就是偏移量,像250H、‘a‘都可以作为理解数)
寄存器:寄存器寻址(指令中给出的是寄存器的名字,比如AX、BX、CX、DX、IP等)
以上两种情形,在指令中都不会出现[ ],因为[ ]表示,在内存里,而一旦与内存有关,就要考虑“段加偏移”。

内存(指令中必定有[ ]):

  • MOV AX, [514H] #直接寻址,内存的地址为立即数,实际物理地址:DS*16 + 514H
  • MOV AX, [BX] #寄存器间接寻址,内存地址在BX中(只能是这四个寄存器BX、BP、SI、DI,BP对应SS,其他三个对应DS),实际物理地址:DS*16 + BX
  • MOV AX, [BX+514H] #寄存器相对寻址,内存地址是BX内容再加上514H,(其中的寄存器只能是这四个BX、BP、SI、DI,BP对应SS,其他三个对应DS),实际物理地址:DS*16 + BX + 514H
  • MOV AX, [BP+DI] #基址变址寻址,必须是一个基址寄存器(BP或BX,对应段寄存器的关系和上面一样),然后加上变址寄存器(SI或DI)作为内存的地址,实际物理地址:SS*16 + BP + DI
  • MOV AX, [BP+DI+514H] #基址变址寻址,必须是一个基址寄存器(BP或BX,对应段寄存器的关系和上面一样),然后加上变址寄存器(SI或DI),实际物理地址:SS*16 + BP + DI + 514H

以上五种情况,在计算物理地址时都采用段加偏移的模式。

考前自学系列·计算机组成原理·常见的数据寻址方式(地址码,操作数位置)

立即寻址:操作数直接在指令代码中给出,指令的执行速度很快间接寻址:操作数在存储器中,指令中给出的地址码字段存放操作数地址的地址直接寻址:操作数在存储器中,指令中的地址码字段存放操作... 查看详情

计算机组成原理期末救急--下

计算机组成原理期末救急--下指令指令格式地址码操作码扩展操作码扩展操作码举例指令操作码操作类型数据存放指令寻址操作数类型数据寻址立即寻址直接寻址间接寻址寄存器寻址寄存器间接寻址隐含寻址总结偏移寻址基址寻... 查看详情

计算机组成与体系结构

目录1.计算机结构2.寻址方式3.CISC与RISC4.流水线5.层次化存储结构6.Cache7.主存8.总线9.N摸混合系统10.校验码1.计算机结构运算器 算术逻辑单元ALU:数据的算术运算和逻辑运算累加寄存器AC:通用寄存器,为ALU提供一个工... 查看详情

计算机组成原理王道考研2021第四章:指令系统--指令的寻址方式(指令寻址和数据寻址)cisc和risc的基本概念

1.指令的寻址方式寻址方式是指寻找指令或操作数有效地址的方式,即确定本条指令的数据地址及下一条待执行指令的地址的方法。寻址方式分为指令寻址和数据寻址两大类。指令中的地址码字段并不代表操作数的真实地址&#... 查看详情

计算机组成原理与接口技术笔记(代码片段)

计算机组成原理与接口技术——基于MIPS架构目录计算机组成原理与接口技术为什么要写这个笔记?写给读者第一章计算机基础1.计算机结构CPU存储器总线2.计算机工作原理基本术语工作过程3.计算机结构模型冯诺依曼结构哈佛... 查看详情

计算机中常用的寻址方式有哪几种

存取数据有关的寻址方式:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址与程序控制有关的寻址方式:段内直接寻址、段间直接寻址、段内间接寻址、段间间接寻址。... 查看详情

(计算机组成原理)第四章指令系统-第二节3:数据寻址之偏移寻址(基址寻址变址寻址和相对寻址)

...址(1)基本概念(2)相对寻址作用本小节承接上一节:(计算机组成原理)第四章指令系统-第二节2:数据寻址(直接寻址、间接寻址、立即数),主要介绍以下三种数据寻址方式,它们可以归为一类,都是将形式地址视为“偏移... 查看详情

复习之七种寻址

段寄存器:CS、DS、ES、SS1.指令指令由操作数码和操作数两部分构成操作码:说明计算机要执行的操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。    操作数:是指令执行的参与者,即... 查看详情

简述机器指令及组成。

...程序不易读、出错率高、难以维护,也不能直观地反映用计算机解决问题的基本思路。参考技术A机器指令主要有操作码和地址码。操作码用来区分指令所要完成的功能和指令数量。地址码就是操作数所在的位置,按地址数量分... 查看详情

指令系统

第四章指令系统【复习提示】指令系统是表征一台计算机性能的重要因素。读者应注意扩展操作码技术,各种寻址方式的特点及有效地址的计算,相对寻址有关的计算,CISC与RISC的特点与区别。本章知识点出选择题的概率较大,... 查看详情

计算机组成原理4.2指令寻址方式(代码片段)

4.2.1指令寻址和数据寻址4.2.1.1指令寻址:顺序寻址:取出指令后PC指向下一条需执行指令的地址。1)顺序寻址:定长指令字结构寻址:假设指令字长=存储字长=16bit=2Byte,且主存按字编址。则每次取出指... 查看详情

arm微处理器有哪几种基本寻址方式

...寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。1.寄存器寻址操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。例如... 查看详情

向题看齐408之计算机组成原理概念记忆总结(代码片段)

408之计算机组成原理概念记忆总结1、计算机系统概述2、数据的表示和运算2.1、进位计数制2.3、定点数的表示2.3.1、表示范围2.4、定点数的计算2.4.1、算数移位2.4.2、逻辑移位2.4.3、循环移位2.4.4、加减运算2.4.5、溢出判断2.4.6、符... 查看详情

计算机组成原理考点总结1(代码片段)

肥学有话说小伙伴们大家好呀!😃我相信点进来的同学多半都是考研或者找工作面试的同学。机组在考研或者面试中的比例还是很大的。小伙伴们要认真学习呀无论是考研还是面试我都祝你们成功。肥学为了帮助大家我... 查看详情

arm寻址方式,王明学learn

...址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式。一、立即数寻址  立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应... 查看详情

组成原理-指令指令系统(代码片段)

...寻址补充:堆栈寻址的执行细节补充:指令中的操作数地址2.3相关例题3汇编指令3.0Intel格式和AT&T格式3.1数据传送指令3.2算术和逻辑指令3.3控制流指令补充:使用SF和OF判断大小关系3.4相关例题1指令格式零地址、一... 查看详情

汇编move指令如何使用

...H传送到AL寄存器。扩展资料:指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。指令的执行对标志位的影响:不影响标志位。指令的特殊要求:目的操作数DST和源操作数SRC不允... 查看详情

指令系统中采用不同寻址方式的主要目的是啥?

...指令长度,扩大寻址空间,提高编程灵活性。指令系统是计算机硬件的语言系统,也叫机器语言,它是软件和硬件的主要界面,从系统结构的角度看,它是系统程序员看到的计算机的主要属性。指令系统是表征一台计算机性能的... 查看详情