首页 > 编程语言 >汇编第三章复习之七种寻址

汇编第三章复习之七种寻址

时间:2023-04-05 15:23:07浏览次数:43  
标签:操作数 复习 七种 MOV SI 寻址 寄存器 AX BX

段寄存器:CS、DS、ES、SS

1.指令

指令由操作数码和操作数两部分构成

操作码:说明计算机要执行的操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。      

操作数:是指令执行的参与者,即各种操作的对象。也就是指令执行操作过程中需要的操作数。

2、寻址

 

1、立即寻址 MOV AX , 3069H

 

 操作数直接存放在指令中,紧跟在操作码之后     

例如:

 

 

     MOV AX,3064H

 

 

2、寄存器寻址 MOV AL , B 

操作数存储在寄存器中,指令中指定寄存器号,这种寻址方式称为寄存器寻址方式。

 

 

 例如 :

    AX=3064H BX=1024H

    MOV AX,BX

得到 AX=1024H BX=1024H 

注意事项:

1、 指令中源操作数和目的操作数都是寄存器时,必须采用同样字长的寄存器,否则汇编时会出错;(源操作数指的是不随指令变化的操作数)

2、两个操作数不能同为段寄存器;

3、目的操作数不能为代码段寄存器(CS)

 

以下各种寻址方式,操作数都在除代码段之外的存储区中,先介绍变址

位移量(displacement):存放在指令中的一个8位或16位或32位的数,但它不是立即数,而是一个地址

基址(base):存放在基址寄存器(如BX、BP)中的内容。它是有效地址中的基址部分,通常用于指向数据段中数组或字符串的首地址

变址(index):存放在变址寄存器(如SI、DI)中的内容。通常用来指向数组中某个元素或字符串的某个字符

EA=基址+(变址x比例因子)+位移量

 

 

3、直接寻址 MOV AX , [ 2000H ]

 

  

操作数的有效地址只包含位移量一种成分,其值就存放在代码段中指令的操作码之后。位移量的值即操作数的有效地址

 

 

执行指令:MOV AX ,[2000H]  设(DS)=3000H。 执行后:(AX)=?

执行:(32000H)→AX  执行后:(AX)=3050H

 

4、寄存器间接寻址 MOV AX , [ BX ]

 

 

操作数的有效地址只包含基址寄存器内容或者变址寄存器内容一种成分。因此有效地址就在某个寄存器中,而操作数则在存储器中。(16位寻址可用的寄存器:BX,BP,SI,DI)

 

 

物理地址PA=16×DS + SI/DI/BX 

物理地址PA=16×SS+ BP

不允许使用AX、CX、DX 存放 EA

MOV AX, [CX] 错误

5、寄存器相对寻址 MOV AX , COUNT [ SI ]

操作数的有效地址为基址寄存器或变址寄存器的内容和指令中指定的位偏移量之和。 (寄存器的规定同寄存器间接寻址)

 

 

 

 例如:

MOV AX, COUNT[SI]

或 MOV AX, [COUNT+SI]

假设 (DS)=3000H, (SI)=2000H, COUNT=3000H(符号地址)

EA=SI+COUNT=5000H

PA=DS*16+EA=35000H

则: PA = 35000H

假设(35000H)=1234H, 那么 (AX)=1234H * 

 

 

 

6、基址变址寻址 MOV AX , [ BP ] [ DI ]

操作数有效地址是一个基址寄存器(如BX、BP)和一个变址寄存器(如SI、DI)的内容之和。 有效地址由两种成分组成。

 

 

 

 

MOV AX, [BX] [DI]

MOV AX, [BX+DI]

MOV AX, ES:[BX] [SI]

必须是一个基址寄存器和一个变址寄存器的组合

MOV AX, [BX] [BP] 错误

MOV AX, [SI] [DI] 错误

假设指令:MOV BX, [BX+SI],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0011H,内存单元12111H的内容为1234H。问该指令执行后,BX的值是什么?

EA=BX+SI=2111H

PA=DS*16+EA=12111H

所以得出BX的值为1234H

 

 

7、相对基址变址寻址 MOV AX , MASK [ BX ] [ SI ]

操作数有效地址是一个基址寄存器(如BX、BP)的值与一个变址寄存器(如SI、DI)的值和指令中的偏移量之和。( 16位寻址位:移量为8位/16位) 有效地址由三种成分组成。

 

 

 

 

MOV AX, MASK [BX] [SI]

MOV AX, MASK [BX+SI]

MOV AX, [MASK+BX+SI]

假设指令:MOV AX, [BX+SI+200H],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0010H,内存单元12310H的内容为1234H。问该指令执行后,AX的值是什么?

EA=BX+SI+200H=2310H

PA=DS*16+EA=12310H

所以得出AX值为1234H

 

 

 

标签:操作数,复习,七种,MOV,SI,寻址,寄存器,AX,BX
From: https://www.cnblogs.com/liujy2233/p/17289478.html

相关文章

  • 新概念2册L77笔记(复习定语从句,强化关系代词that的场景)
    LAsuccessfuloperation单词理解语法理解定语从句(限定/非限定性名词)修饰的名词叫做先行词、连接定语从句的词叫关系代词,有限定、非限定(补充说明)、关系副词代替介词形容词修饰名词,定语就是形容词agooddoctor#一名好医生介词短语、定语从句,要后置定语位于名词后adoctori......
  • 欧几里得算法与更相减损法复习
    (1)欧几里得算法(辗转相除法),用于求两个整数的最大公因数解释:两个整数a和b,假如a=b*x+ya和b的最大公因数是d,那么a%d==0,b%d==0,也有(b*x+y)%d==0∴y%d==0即a和b的最大公因数也是b和y的最大公因数,而y=a%b1intgcd(inta,int......
  • 会计学第1章-总论-期末复习
    一、会计的基本概念1.1会计的产生和发展1.1.1会计的产生会计起源的标志:中国——书契(帐单)古巴比伦——黏土记录板印度——贝多罗树叶记录埃及——纸草文书会计产生的根本原因:人们对经济效益的追求(以尽可能少的劳动消耗,尽可能节省的劳动费用,获得尽可能大的劳动成果)。“会......
  • Goalng:基础复习一遍过
    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。  剖析Helloworld  新建文件main.go写入以下内容:packagemainimport"fmt"funcmain(){fmt.Println("HelloWorld!")}其中,packgemain 的作用是声明了mai......
  • 02142数据结构导论复习笔记
    第一章概论概论⭐⭐数据结构:计算机组织数据和存储数据的方式。数据结构:指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式,以及定义在该组数据上的一组操作。引言⭐⭐算法+数据结构=程序数据、数据元素和数据项⭐⭐⭐数据:所有被计......
  • 复习
    Markdowm复习标题三级标题四级标题 字体Hello,WordHello,wordHello,WordHello,Word 引用小杨姐姐前面加> 分割线第一种三个减号--- 第二种三个***也是 图片 要用英文的![]() 超链接跳转到小杨姐姐的空间 英文[]() 列表......
  • Spring源码复习
    Bean的生命周期 ApplicationContextCentralinterfacetoprovideconfigurationforanapplication.*Thisisread-onlywhiletheapplicationisrunning,butmaybe*reloadediftheimplementationsupportsthis.**<p>AnApplicationContextprovides:*<ul......
  • C#复习笔记-委托
       委托是一种引用类型,委托定义了了一类可以被委托实例调用的方法。它定义了方法的返回值类型和参数类型。定义了一个名为FeedBack的委托,返回一个int类型的值,带有一个int类型的参数。可以将任何类型或者结构中与委托类型匹配的方法传递给委托,可以是静态方法也可以是实例方法......
  • 新概念2册L75笔记(复习一般过去时&系动词:变化)
    L75SOS单词理解语法理解一般过去时功能:发生在过去的事情;礼貌委婉。关键词:过去具体时间(yesterday/ago/last…)课文理解......
  • C 语言程序设计复习
    第一章程序设计和C语言计算机程序一组计算机能够识别和执行的指令计算机语言机器语言计算机只能识别由0和1组成的指令能够别计算机识别和接受的二进制代码成为机器指令机器指令的集合就是机器语言符号语言(汇编语言)计算机不能直接识别和执行,需要汇编程序将其转换为机......