巧用类比法讲授汇编指令的寻址方式

合集下载

DSP第四章 TMS320C20X系列的寻址方式及汇编指令

DSP第四章 TMS320C20X系列的寻址方式及汇编指令

LT *0+
执行指令前: ARP=1, (AR1)=100H,(AR0)=3 执行操作: 用AR1所指的数据存储器100H内 容装载暂时寄存器; 执行指令后: ARP=1,(AR1)=103H
⑤减去索引量
方法
举例
指令使用AR内容作
LT *0-
为数据存储器地址,
执行指令后AR内容 执行指令前:
自动减去ARO的内容。 ARP=1, (AR1)=100H,(AR0)=3
执行操作:
用AR1所指的数据存储器100H内
容装载暂时寄存器;
执行指令后:
ARP=1,(AR1)=FEH
⑥加上索引量,反向进位
方法
举例
指令使用AR内容作为 数据存储器地址,执 行指令后AR内容自动 加上AR0的内容,该 加法采用反向进位方 法。 注:主要用于FFT算 法
LT *BR0+
把AR0加到辅助寄存器中时,地址以位倒序的方 式产生,即进位是从左向右,而不是从右向左进位。
LTP ind [,ARn]
MAC MAC pma , dma
乘且累加
MAC pma, ind [ , ARn]
MACD MACD pma, dma
乘且累加,并将被寻址数据移至下一单元
MACD pma, ind [, ARn]
MPY MPY dma
MPY ind [, ARn]
MPYA/MPYS
累加前次乘积,再将TREG与被寻址数相乘
PAC PAC
PREG转入累加器ACC
SPH
存储PREG高16位,直接或间接寻址
SPL
存储PREG低16位,直接或间接寻址
例1:MAC
0FF00H,02H ;DP=6,地址300H~37FH,PM=0, CNF=1

汇编中的各种寻址方式

汇编中的各种寻址方式

汇编中的各种寻址方式(2011-11-18 11:41:32)转载▼标签:杂谈1,立即寻址方式操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段,这种操作数成为立即数。

例:mov al,5 执行完指令后al的值为05h2,寄存器寻址方式操作数在寄存器中,指令指定寄存器号。

例:mov ax,bx3,直接寻址方式操作数的有效地址包含位移量的一种成分,其值就存放在中指令的操作码之后。

例:mov ax,[2000h]在汇编语言指令中,可以用符号地址代替数值地址。

如:mov ax,valuevalue为存放操作数单元的符号地址。

如:mov ax,[value]4,寄存器间间接寻址操作数的有效地址只包含基址寄存器内容或变址寄存器内容的一种成分。

例:mov ax,[bx]如果(DS)=2000h,(bx)=1000h则物理地址=20000+1000=21000h5,寄存器相对寻址方式(或称直接变址寻址方式)操作数的有效地址为基址寄存器或变址寄存器的内容和指令中指定的位移量之和,所以有效地址由两种成分组成。

例:mov ax,count[si](也可以表示为mov ax,[count+si])6,基址变址寻址方式操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和,所以有效地址由两种成分组成。

例:mov ax,[bx][di](或写为:mov ax,[bx+di])此类寻址方式使用段跨越前缀的格式为:mov ax,es:[bx][di]7,相对基址变址寻址方式操作数得意偶小弟值基址寄存器和一个变址寄存器的内容和指令中指定的位移量之和,所以有效地址由三种成分组成。

例:mov ax,mask[bx][si](也可写为mov ax,mask[bx+si]或者mov ax,[mask+bx+si])8,比例变址寻址方式操作数的有效地址是变址寄存器的内容乘以指令中指定的比例银子再加上位移量之和,所以由三种成分组成。

汇编的7种寻址方式

汇编的7种寻址方式

汇编的7种寻址⽅式
今天⼤三第⼀次写汇编的博客,希望读者,热爱计算机技术的兄弟姐妹们多多⽀持。

另外⼤家有什莫不懂得可以留⾔哦,哈哈哈
我们今天来讲讲汇编的7种寻址⽅式,今天讲前两类
主体分为三类:⽴即寻址,寄存器寻址,存储器寻址(存储器寻址有专门的寄存器,基址寄存器bx,bp;变址寄存器si,di
汇编的主要原理:1.寻址⽅式,2.⼀切问题⽤内存的原理去分析,就是忽略语⾔,去考虑怎末设计解决问题,
并判断问题的对错与否。

1.⽴即寻址:操作数在指令中直接给出
eg:
mov DST,SRC (DST是⽬的操作数,SRC是源操作数)
此时⽴即寻址的话,SRC应写成⽴即数
举例:mov ax,3 mov bx,45
注:DST,SRC的字长是⼀样的
2.寄存器寻址:把操作数放在寄存器中进⾏运算
eg:
mov ax,bx ;解释把(bx)之中的内容放到(ax)之中去,且bx中的内容是数字,这⾥“()”表⽰取内容的意思
练习和思考题
判断语句是否正确?为什莫?
1.mov al,-234
不正确,因为8进制带符号数能表⽰的范围是-128~127,⽽al是8为的寄存器,所以错误2.mov al,23
mov dx,al
第⼆条语句不正确,因为类型不匹配,dx是16位,al是8位的。

巧用类比法讲授汇编指令的寻址方式--good

巧用类比法讲授汇编指令的寻址方式--good

巧用类比法讲授汇编指令的寻址方式黄毅益江苏常熟职教中心215500摘要:采用类比法,掌握汇编语言程序的指令寻址方式关键词:汇编语言类比法寻址方式指令系统1 引言虽然现在高级语言很多,但由于汇编可以直接访问硬件,是能直接控制硬件的唯一语言,目前还不能够完全取代汇编语言,它是计算机专业的一门重要基础课,寻址方式在汇编语言中占有极其重要的地位,可以说寻址方式是学习汇编这门低级语言的入场券,往往也是学习过程中遇到的瓶颈问题。

本文通过类比法,浅谈了如何学习寻址方式。

在计算机原理课程中,计算机指令的寻址方式是比较重要的1章,内容比较抽象枯燥,8086/8088寻址方式常见的有立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,变址寻址,基址寻址,基址加变址寻址等。

2 指令系统的知识点本文主要探讨一下几种寻址方式的区别与联系以及教育的心得,下面先谈一下在教学中的几种指令的定义和用法。

2.1 立即寻址方式:这种寻址方式提供的操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在码段区域,立即数可以是8位或16位,立即寻址主要用来寄存器赋初值,如汇编语言中的,如果你要用一个寄存器计数,首先要将这个寄存器清零,然后在循环过程中加一,然后当寄存器的数为某个数的时候就退出循环,例如:MOV AX , 1234 H,该操作是将十六进制数1234H送入AX2.2 直接寻址方式:如指令中给出的地址码就是操作数的地址,用这个有效地址访问一次存储器便获得操作数,这种寻址方法成为直接寻址。

就想成:其实你已经站在你要找的"门户号(家)"面前了,直接敲门进去就OK了!这种寻址方式是以数据段寄存器的地址为基础,可以在多达64K字节的范围找操作数例如:MOV AL , DS:[2000H],将逻辑地址为DS:2000单元内的字节送如AL ,若段基址DS=4000H,则段起始物理地址为4000H左移4位,即40000H2.3 寄存器寻址:如果指令中的给出的地址码是寄存器的编号,操作数存放所指定的寄存器中,这种成为寄存器直接寻址,它和前面的直接寻址方式差不多,不同的只是地址码字段中给出的是寄存器号。

汇编语言第二章 寻址方式

汇编语言第二章 寻址方式

第二章寻址方式在8086微处理器中,一条指令通常由操作码加上操作数构成。

指令形式为:操作码[操作数1], [操作数2]; 注释其中,操作码指明执行的动作,操作数指明操作的对象。

由于寄存器数量有限,操作数不可能都放在寄存器中,实际上,操作数既可以放在寄存器中,也可以放在主存贮器中,这样就涉及到操作数的寻址问题。

我们将寻址操作数存放地址的方式称为寻址方式。

本章的内容包括:主存储器和物理地址的形成寻址方式常量与变量的定义2.1 主存贮器和物理地址的形成一、主存贮器计算机存贮系统分为:主存贮器(内存)、辅助存贮器(外存)。

●主存容量小、存取速度快、价格高;●辅存容量大、存取速度慢、价格低。

主存贮器的基本存贮单位是“位”(bit ),每8位组合成一个“字节”;每相邻的两个字节称为“字”;相邻的四个字节称为“双字”。

为了区别各个存贮单元,给每个单元编号,称为地址。

地址:字节单元的编号,也称为物理地址。

低字节放低位,高字节放高位。

例如:0004单元存放内容为1234H 。

0 10FFFFFH 低地址 高地址 从0~0FFFFFH ,共有220个单元,20根地址线。

表示:(0004)字=1234H二、存储器物理地址的形成早期的8086微处理器,有20根地址线,寻址范围2^20 = 1M 字节。

但是,8086内部为16位结构,与地址相关的寄存器均为16位,从而导致可寻址范围为64K。

因此,设计成为将主存分段使用,每段最大为64K字节。

用CS、DS、SS、ES保存当前可用段的段首地址。

规定:段首地址只能从任一“小段”的首地址开始,也就是必须最低4位为0,如果所有的段首地址都是这样,则可以忽略最低4位,而只将高16位放到段寄存器中。

因此,计算物理地址时,应将段寄存器内容左移4位,恢复段首址原值,然后再与本段中待访问单元的偏移地址相加,得到访问单元的物理地址。

因此,被访问单元物理地址PA = 段首址*16+偏移地址。

汇编语言寻址方式

汇编语言寻址方式
80x86的寻址方式
计算机是通过执行指令序列来解决问题的,因此每种计算机都 有一组指令系统提供给用户使用,这组指令集就称为计算机的 指令系统。 计算机中的指令由操作码字段和操作数字段两部分组成。 操作码 操作数 ... 操作数
指令的操作码字段在机器里面的表示比较简单,只需对每一种 操作指定确定的二进制代码就可以了。 指令的操作数字段情况较为复杂。 确定指令中用于说明操作数所在地址的方法称为寻址方法。 8086/8088有七种基本的寻址方式。
1.立即寻址方式 操作数就包含在指令中,它作为指令的一部分,跟在操作后存 放在代码段,这种操作数就称为立即数。 立即数可以是8位的,也可以是16位的。 如果是16位立即数,按“高高低低”原则进行读取。 例如:MOV AX, 1234H
再如:MOV AL, 5 MOV BX, 2064H
则执行指令后(AL)=05H 则执行指令后,(BX)=3064H
指令中也可指定段超越前缀来取得其它段中的数据。 如,MOV AX , ES : [BX] 引用的段寄存器是ES 请熟悉下面的表达形式: MOV [SI] , AX ; 目的操作数间接寻址 MOV [BP] , CX ;目的操作数引用的段寄存器是SS MOV SI , AX; 目的操作数寄存器寻址
5.寄存器相对寻址方式 操作数在存储器中,操作数的有效地址是一个基址寄存器 (BX、BP)或变址寄存器(SI、DI)内容加上指令中给定的8 位或16位位移量之和。 即:
7.相对基址加变址寻址方式 操作数在存储器中,操作数的有效地址是由: 基址寄存器之一的内容与变址寄存器之一的内容 及指令中给定的8位或16位位移量相加得到。 即:
在一般情况下,如果BP之内容作为有效地址的一部分,那么 引用的段寄存器是SS;否者以DS之内容为段值。 在指令中给定的8位或16位位移量采用补码形式表示。在计算 机有效地址时,如果位移量是8位,那么被带符号扩展成16位。 当所取得的有效地址超过FFFFH是,就取64K的模。

简述计算机指令的寻址方式

简述计算机指令的寻址方式

简述计算机指令的寻址方式
计算机指令的寻址方式是指指令通过哪种方式来访问和处理操作数。

常见的计算机指令的寻址方式包括以下几种:
1. 直接寻址:指令中给出了操作数的地址,直接通过该地址访问操作数。

2. 即时寻址:指令直接给出了操作数的值,而不必访问内存。

3. 寄存器寻址:指令中给出了一个寄存器的编号,操作数存储在该寄存器中。

4. 寄存器间接寻址:指令中给出了一个寄存器的编号,该寄存器中存储了操作数在内存中的地址,需要通过寄存器访问内存。

5. 相对寻址:指令中给出了与指令本身相对地址的偏移量,操作数的地址通过指令本身相对地址加上偏移量得到。

6. 基址寻址:指令中给出了一个基址寄存器的编号和一个偏移地址,操作数的地址通过基址寄存器和偏移地址结合得到。

7. 变址寻址:指令中给出了一个变址寄存器的编号和一个偏移地址,操作数的地址通过变址寄存器和偏移地址结合得到。

8. 相对寄存器寻址:指令中给出了一个相对寄存器的编号,操作数的地址通过相对寄存器和指令中的寄存器的值结合得到。

以上是常见的计算机指令的寻址方式,不同的计算机体系架构可能支持不同的寻址方式,寻址方式的选择取决于具体的指令集设计和计算机架构设计。

汇编语言-寻址方式

汇编语言-寻址方式

在一般情况下,如果BP之内容作为有效地址的一部分,那么 引用的段寄存器是SS;否者以DS之内容为段值。
例如:如果(DS)=2100H ,(BX)=0158H,(DI)=10A5H MOV AX, [BX][DI] 假设该字存储单元的内容如下,则(AX)=1234H
下面两种表示方法是等价的: MOV AX , [BX + DI] MOV AX , [DI][BX] 下面指令中,目的操作数采用基址加变址寻址,引用的段寄存 器是DS。 MOV DS :[BP + SI] , AL 下面指令中,源操作数采用基址加变址寻址,引用的段寄存器 ES。 MOV AX , ES :[BX + SI] 这种寻址方式适用于处理数据或表格。用基址寄存器存放数组 首地址,而用变址寄存器来定位数组中的各元素。或反之。 由于两个寄存器都可改变,所以能更加灵活地访问数组或表格 中的元素。
80x86的寻址方式
计算机是通过执行指令序列来解决问题的,因此每种计算机都 有一组指令系统提供给用户使用,这组指令集就称为计算机的 指令系统。 计算机中的指令由操作码字段和操作数字段两部分组成。 操作码 操作数 ... 操作数
指令的操作码字段在机器里面的表示比较简单,只需对每一种 操作指定确定的二进制代码就可以了。 指令的操作数字段情况较为复杂。 确定指令中用于说明操作数所在地址的方法称为寻址方法。 8086/8088有七种基本的寻址方式。
请熟悉下面的写作形式: MOV BX , [BP-4] 源操作数间接相对寻址,引用的段寄存器是SS。 MOV ES : [BX + 5] , AL 目的操作数采用寄存器相对寻址,引用的段寄存器是ES。 指令MOV AX , [SI + 3]与MOV AX , 3[SI]是等价的。

汇编入门 精髓(转)寄存器和寻址方式

汇编入门 精髓(转)寄存器和寻址方式

一汇编入门精髓(转)寄存器和寻址方式2010-03-20 13:01寄存器和寻址方式寄存器,在8086/8088里,有三组共13个16位寄存器.寄存器,从名字上看,可以知道,它就象书店的行包寄存处,寄存器的名字就象寄存处发给用户取回自已物件的标志牌子,表示物件的存放地址.寄存器的内部给构都相同,只不过是一个二字节或一字节的存储空间,别看他们小,作用可大了,所有电脑的运算,都要从他们过关,因为他们的处理速度快嘛.为了区分和准确运用,就要给他们进行科学的分组和起名.第一组,数据寄存器,AX,BX,CX,DX.其中,X表示一个未知数,那么这些寄存器都可以用来存放数据,ABCD,虽说都可以理解为一个顺序号,但是,A还是加法ADD的简称,所以AX叫累加器,B是基地址的简称,所以BX可以叫基地址寄存器,C是计数器的简称,所以CX可以叫做计数器.D是数据DATA的简称,所以DX可以叫数据寄存器.这四个寄存都可以按高八位和低八位分成两个寄存器:AH,AL,BH,BL,CH,CL,DH,DL.第二组,地址指示和变址寄存器,SI,DI,BP,SP.它们用来表示一个地址偏移,或用来表示一个地址的变化状况.SI,DI都可以表示变址,在串操作中,SI和DI表示源和目的操作数的指示器,快速记忆方法:SI联想饮水思源的思(谐音SI),DI联想目的(谐音DI).BP,SP的P表示堆栈专用,BP表示基地址专用,SP则是堆栈顶指示器.其中,BP,SI,DI还可以兼作数据寄存器.SP则只能和堆栈绑定.第三组,段寄存器,CS,SS,DS,ES.它们用来存放CPU可以直接访问的四个当前段的段首地址.CS代码段,SS堆栈段,DS数据段,ES附加段.其中,在表示地址时,CS和指令指示器IP绑定使用,SS 和BP绑定.DS为SI,DI,BX共用.第四组,指令指示器,IP,这是CPU自动引用的,表示下一次要从主存取出的指令的偏移.寻址方式寻址方式分为六种,(这是教材里讲的).1,立即寻址, 数据的本身在代码段.用于赋初值.2,直接寻址, 数据的偏移在代码段,用于变量名.3,寄存器寻址, 数据的本身在寄存器.用寄存器名表示.4,寄存器相对寻址, 数据的偏移在寄存器.注意:BP和SS绑定.DS为SI,DI,BX 共用.5,变址寻址, 数据的偏移在一个寄存器里,并要加上一个偏移量.注意:BP和SS绑定.DS为SI,DI,BX共用.6,基址加变址寻址, 数据的偏移放在两个寄存器中,并要加上一个偏移量.注意:BP和SS绑定.DS为SI,DI,BX共用.BX为DS段的基址专用.寻址方式是汇编语言的重点和难点。

汇编指令及寻址方式

汇编指令及寻址方式
例如程序: START: ORG MOV MOV 1000H A,#20H B,#30H ┇
org 0000h ljmp 1000h
2013-6-27
3
(2)结束汇编伪指令END 格式:[标号:] END [表达式] 功能:放在汇编语言源程序的末尾,表明源程序的汇编到此 结束,其后的任何内容不予理睬。 (3)赋值伪指令EQU 格式:字符名称x EQU 赋值项n 功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符名 称x就等同于该赋值项n,其值在整个程序中有效。赋值项n可以 是常数、地址、标号或表达式。在使用时,必须先赋值后使用。
MCS-51指令系统 Instruction Set
2013-6-27
1
指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部
信息的安排。完整的指令格式如下:
[标号:] 操作码 [目的操作数] [,源操作数] [;注释] MAIN: MOV DPTR, #2010H ;赋值 其中:[ ]项是可选项。 标号:指本条指令起始地址的符号,也称为指令的符号地址。代表该条指
变址寻址(基址+变址)
Base-Register-plus-Index-Register-Indirect Addressing
以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两 者内容相加,结果作为操作数的地址。 累加器A中存放的操作数地址相对基地址的偏移量的范围 为00H~FFH(无符号数) 操作数在程 序存储器中 常用于查表操作。 MCS-51 MOVC A, @A+DPTR ;(A+DPTR) →A MOVC A, @A+PC ;PC+1 →PC,(A+PC)→A
16

汇编寻址方式总结

汇编寻址方式总结
操作数的寻址方式
操作数是指令或程序的主要处理对象。如果某条指令或某个程序不处理任何操作数,那么, 该指令或程序不可能有数据处理功能。在CPU的指令系统中,除NOP(空操作指令)、HLT(停机指 令)等少数指令之外,大量的指令在执行过程中都会涉及到操作数。所以,在指令中如何表达 操作数或操作数所在位置就是正确运用汇编指令的一个重要因素。 在指令中,指定操作数或操作数存放位置的方法称为寻址方式。操作数的各种寻址方式是用 汇编语言进行程序设计的基础,也是本课程学习的重点之一。 微机系统有七种基本的寻址方式:立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器 间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。 其中,后五种寻址方式是确定内存单元有效地址的五种不同的计算方法,用它们可方便地实 现对数组元素的访问。 另外,在32位微机系统中,为了扩大对存储单元的寻址能力,增加了一种新的寻址方式——32 位地址的寻址方式。 为了表达方便,我们用符号“(X)”表示X的值,如:(AX)表示寄存器AX的值。
7、相ห้องสมุดไป่ตู้基址加变址寻址方式
操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值 和指令中的8位/16位偏移量之和。 其有效地址的计算公式如右式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则其缺省的段寄存器为SS; 否则,其缺省的段寄存器为DS。 指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符 号扩展成16位。当所得的有效地址超过0FFFFH,则取其64K的模。 例3.5 假设指令:MOV AX, [BX+SI+200H],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0010H, 内存单元12310H的内容为1234H。问该指令执行后,AX的值是什么? 解:根据相对基址加变址寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为: EA=(BX)+(SI)+200H=2100H+0010H+200H=2310H 该操作数的物理地址应由DS和EA的值形成,即: PA=(DS)*16+EA=1000H*16+2310H=12310H 所以,该指令的执行效果是: 把从物理地址为12310H开始的一个字的值传送给AX。 其执行过程如图3.7所示。 从相对基址加变址这种寻址方式来看, 由于它的可变因素较多,看起来就显得复杂些, 但正因为其可变因素多,它的灵活性也就很高。比如:

谈《汇编语言》中寻址方式的对比学习法

谈《汇编语言》中寻址方式的对比学习法

谈《汇编语言》中寻址方式的对比学习法
汇编语言是一种低级语言,它也是最原始的计算机编程语言。

在汇编语言中,数据与代码都用地址形式表示,这种“寻址”方式比较重要,它能够决定程序的运行结果。

当涉及到寻址时,汇编语言中有两种:直接寻址和间接寻址。

直接寻址方式是指机器码使用操作数的物理地址作为目的地址,即在操作指令中明确指出了操作数的地址,直接将操作数放置在指定的存储单元中,执行相应的指令,再由操作数取出正确结果。

由于直接寻址是一种简单快捷的寻址方式,因此它通常被认为是在低级程序设计语言上的一种优势。

而间接寻址,则是指机器指令不使用物理地址,而是使用某个特殊的地址作为目的地址。

这种地址叫做指针地址,指针就是指向操作数的指针,它可以指向任意的存储单元,从而可以方便快捷地访问操作数,相同的程序指令可以在不同位置执行,因此可以更加灵活和不受限制,这是间接寻址所具有的优势所在。

因此,可以说,直接寻址方式和间接寻址方式是汇编语言中的两种重要寻址方法。

在学习汇编语言时,需要认真比较和分析这两种方式,尽可能深入地了解它们的区别,勤加思考,从而加深对汇编语言的理解,提高代码的运行效率。

汇编语言培训课件 寻址方式32页PPT

汇编语言培训课件 寻址方式32页PPT
耻。——阿卜·日·法拉兹
42、只有在人群中间,才能认识自 己。——德国
43、重复别人所说的话,只需要教育; 而要挑战别人所说的话,则需要头脑。—— 玛丽·佩蒂博恩·普尔
44、卓越的人一大优点是:在不利与艰 难的遭遇里百折不饶。——贝多芬
45、自己的饭量自己知道。——苏联
汇编语言培训课件 寻址方式
1、合法而稳定的权力在使用得当时很 少遇到 抵抗。 ——塞 ·约翰 逊 2、权力会使人渐渐失去温厚善良的美 德。— —伯克
3、最大限度地行使权力总是令人反感 ;权力 不易确 定之处 始终存 在着危 险。— —塞·约翰逊 4、权力会奴化一切。——塔西佗
5、虽然权力是一头固执的熊,可是金 子可以 拉着它 的鼻子 走。— —莎士 比

汇编语言课件(3)—指令系统和寻址方式

汇编语言课件(3)—指令系统和寻址方式
汇编语言 程序设计
第3章 指令系统和寻址方式
◆ 汇编指令格式 ◆ 寻址方式
◆ 8086指令系统 ◆ 80X86及Pentium扩展指令
汇编语言 程序设计
3.1 汇编指令格式
计算机中的一条指令通常包含两部分:
操作码 操作数
依据操作数的个数划分,80X86CPU指令 系统中的指令格式最常用的有:双操作数指 令、单操作数指令和无操作数指令。
位通用寄存器。 说明: ① 源操作数必须是存储器操作数,即OPS采用存储器寻址;
目的操作数必须是一个16位通用寄存器。 ② 本指令对标志位无影响。 ③ 该指令通常用来建立内存储器的寄存器指针。
汇编语言 程序设计
பைடு நூலகம்
(2)传送偏移地址及数据段首址指令LDS
格式:LDS REG16,OPS
功能:将由源操作数确定的双字存储单元的内容传送给DS及目的操
MOV VAL,
对使用直接寻址方式需说明以下几点:
● 操作数默认存放在数据段中,段寄存器DS在指令 格式无须指定。
汇编语言 程序设计
(2)寄存器间接寻址
此寻址方式中,操作数的有效地址EA存放在SI、 DI、BX或BP四个寄存器之一中,即:EA=(BX)或 (BP)或(SI)或(DI)。
汇编格式: [ R ] (其中R是寄存器SI、DI、BX、 BP之一)
这3个地址分量的不同组合,使形成有效地址EA的方
汇编语言 程序设计
(1)直接寻址
直接寻址是最简单的存储器寻址,这种寻址,操 作数的有效地址EA由指令直接给出。它主要用于存取 简单变量。
汇编格式:(a)[ 常量 ] 有变量的表达式
(b)变量 或 含
【例3.3】 MOV AL,[ 1000H ] BX

汇编语言-寻址方式

汇编语言-寻址方式

汇编语⾔-寻址⽅式⼀ 定义 在指令中,指定操作数或操作数存放位置的⽅法称为寻址⽅式⼆ 分类(16位cpu) 1 ⽴即数寻址 2 寄存器寻址 3 存储器寻址 (1) 直接寻址 操作数存放在内存中,在指令中直接给出该操作数的有效地址 例: mov ax, [100] (2) 寄存器间接寻址 操作数在存储器中,操作数的有效地址⽤SI、DI、BX和BP等四个寄存器之⼀来指定 (3) 寄存器相对寻址 操作数在存储器中,其有效地址是⼀个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量之和。

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

(4) 基址变址寻址 操作数在存储器中,其有效地址是⼀个基址寄存器(BX、BP)和⼀个变址寄存器(SI、DI)的内容之和。

(5) 相对基址变址寻址 操作数在存储器中,其有效地址是⼀个基址寄存器(BX、BP)的值、⼀个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。

三 32位cpu寻址⽅式在32位微机系统中,除了⽀持前⾯的七种寻址⽅式外,⼜提供了⼀种更灵活、⽅便,但也更复杂的内存寻址⽅式,从⽽使内存地址的寻址范围得到了进⼀步扩⼤。

在⽤16位寄存器来访问存储单元时,只能使⽤基地址寄存器(BX和BP)和变址寄存器(SI和DI)来作为地址偏移量的⼀部分,但在⽤32位寄存器寻址时,不存在上述限制,所有32位寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP)都可以是地址偏移量的⼀个组成部分。

当⽤32位地址偏移量进⾏寻址时,内存地址的偏移量可分为三部分:⼀个32位基址寄存器,⼀个可乘1、2、4或8的32位变址寄存器,⼀个8位/32位的偏移常量,并且这三部分还可进⾏任意组合,省去其中之⼀或之⼆。

32位基址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP;32位变址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI和EBP(除ESP之外)。

如何掌握汇编语言的寻址方式

如何掌握汇编语言的寻址方式

如何掌握汇编语言的寻址方式陕西理工学院 潘继强[摘 要]寻址方式在汇编语言中占有极其重要的地位,可以说寻址方式是学习汇编这门低级语言的入场卷,往往也是学习过程中遇到的瓶颈问题。

本文通过分析比较基本概念,浅谈了采用比较法学习寻址方式,并通过具体实例来阐述用不同寻址方式实现对内存的访问。

[关键词]汇编语言 寻址方式 有效地址 比较法 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的惟一语言,因而对于程序的空间和时间要求很高的场合,汇编语言是必不可少的。

汇编语言程序设计是高等院校计算机专业学生必修的主干课程之一,是《计算机组成原理》、《单片机》等专业课程的先修课。

但汇编语言是一种面向机器的低级语言,它要求学生除了了解计算机硬件,还要能够熟悉并灵活地应用机器所采用的各种寻址方式及计算机的指令系统,这对运用汇编语言进行程序设计是至关重要的。

而寻址方式又是学习汇编语言刚开始就遇到的重点和难点部分,是学习后面指令和程序的基础。

在教学过程中,通常选用Intel80X86CPU的PC机为基础机型来组织教学,它提供了十种与数据有关的寻址方式,其中几种寻址方式概念相似,学生普遍反映不好理解,极其容易混淆,编程时不知如何使用。

针对这种情况,在具体教学中借助比较的方法来提高学生的辨析能力,并配以例题让学生掌握寻址方式的异同及编程时的具体运用,以达到综合应用所学的概念编程解决实际问题。

我们知道分析、比较与综合是思维的基本过程,也是重要的逻辑思维方法。

根据汇编抽象的特点,应用“比较法”进行学习,可以明确概念的本质,区分容易混淆的问题,达到举一反三的效果,以便更好地掌握基本概念。

在学习Intel80X86微处理器中的寻址方式时,涉及到的寻址方式有以下十种:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址、比例变址寻址、基址比例变址寻址、相对基址比例变址寻址(后面三种寻址方式均与比例因子有关,这些寻址方式只能在80386及其后继机型中使用)。

汇编语言指令系统和寻址方式详述

汇编语言指令系统和寻址方式详述

例:MOV EAX, TABLE [ EBP ][ EDI 4 ]
▲ 16位和32位寻址的差异
地址成分
16位寻址
32位寻址
基址寄存器
BX、BP
任何32位通用寄存器
变址寄存器
SI、DI
除ESP外的任何32位通用寄存器
比例因子
1
1、2、4、8
11
与转移地址有关的寻址方式: 用来确定转移指令及转子指令的转向地址。
MOV AX, [BX] [BP] MOV AX, [SI] [DI]
8
( 7 ) 相对基址变址寻址方式
有效地址 =
ቤተ መጻሕፍቲ ባይዱ(BX) (SI)
+
+
8位 位移量
(BP) (DI) 16位
MOV AX, MASK [BX] [SI] 或 MOV AX, MASK [BX+SI] 或 MOV AX, [MASK+BX+SI]
(BP) 8位
+
(SI)
位移量 16位
(DI)
指令格式: MOV AX, COUNT[SI] 或
MOV AX, [COUNT+SI]
假设 (DS)=3000H, (SI)=2000H, COUNT=3000H, 则: PA = 35000H
假设(35000H)=1234H, 那么 (AX)=1234H
2
(1) 立即寻址方式* —— 操作数在指令中给出 指令格式: MOV AL, 5 MOV AX, 3064H MOV AL, ‘A’
* 只能用于 SRC 字段
MOV 40H, AL
* SRC 和 DST 的字长一致
MOV AH, 3064H
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这种 处 理方 式使 我 们 能用短 小 的程序 来 处理 大批 的数
据 , 序 中没 有 修 改指 令 , 程 程序 可 以 反 复使 用 , 加 了 增 这 种 寻址 方 式 提 供 的操 作 数 直 接 放 在 指 令 中 . 紧 程序 的灵 活性 。 跟 在操 作码 的后 面 . 与操 作码 一 起 放 在码 段 区域 。 即 25基址 加 变址 立 . 数 可 以是 8位 或 1 6位 . 即 寻址 主要 用 来 寄存 器 赋初 立 这是 一 种 变 化与 间址 相 复合 的方式 .或 称为 扩 展
这 种 寻址 方 式 是 以 数 据段 寄存 器 的地 址 为 基 础 . 完 全 取代 汇编语 言 .它 是计 算 机 专业 的一 门重 要基 础 4 课, 寻址 方式 在 汇 编语 言 中 占有 极 其 重 要 的地 位 . 以 可 以在 多 达 6 K字 节 的范 围找操作 数 可 说 寻 址 方式 是 学 习汇 编这 门低 级语 言 的入 场券 ,往 往 例如 : V AL,D : 0 O ] 将 逻 辑 地址 为 D : MO S[ O H , 2 S 也 是 学 习过程 中遇 到 的瓶颈 问题 。本 文 通过 类 比法 。 浅 2 0 0 0单 元 内的字 节 送 如 A 。 段基 址 D = 0 0 则 L 若 S 4 0 H。 谈 了如何 学 习寻址 方式 。 段 起始 物 理地 址为 4 0 H左移 4位 . 4 0 0 00 即 00 H 在计 算 机 原理 课 程 中 .计 算 机 指令 的寻 址方 式 是 23寄存 器 寻址 : . 比较 重要 的 1章 。内容 比较抽 象 枯燥 .0 68 8 8 8 /0 8寻址 如果 指令 中 的 给 出的 地址 码 是 寄存 器 的编 号 . 操
2 直接寻址 3 寄存器寻址
ቤተ መጻሕፍቲ ባይዱ
在内 存中 在 CU的寄存器中 P
M V X[ 0H O A ,00] 2 M V X B O A , X
4 寄存器问接寻址 5 寄存器相对寻址
6 变址寻址
7 基址加变址寻址
在CU的寄存器中 P 在 CU的寄存器中 P
21立 即寻 址方 式 : . 值 , 汇 编语 言 中 的 。 如 如果 你 要 用 一 个 寄 存 器 计 数 , 首 型变 址 寻址 。 照先 变址 还是 先 间址 . 种 方式 可 以分 按 这
先 要 将 这个 寄 存 器 清零 . 后 在 循 环 过 程 中加 一 . 后 为 两种 方式 : 然 然 当寄存 器 的数为 某个 数 的时 候就 退 出循 环 . 例如 : V MO ( ) 变址 方式 ( 变址后 问址 )S ( ( + ) 1前 先 ,= (R) D) A . 2 4H. X 1 3 该操作 是 将十 六进 制 数 1 3 H送 入 A 24 X ( ) 变 址 方 式 ( 间 址 后 变 址 ) 表 示 S (R) 2后 先 , =( + 22直 接寻址 方 式 : . ( ) D) 如指 令 中给 出的 地址 码 就 是 操作 数 的 地址 .用 这 3 采 用类 比 法在教 学 中的一 些探 索意 见 、 在 讲 授 上 面知 识点 时 . 采用 了类 比的方 法 。 比 我 类 个 有效 地址 访 问一 次存储 器 便 获 得操 作 数 .这 种 寻址
S作为源变址,1 标变址 I D目
作为变址寄存器
M0 A ,B ] V X 【X M0 A ,B +】 V X 【X 5
M V X onr 1 O A ,c t,[] rs
B P XB 作为基址寄存器,S 【 I MO A ,B +I2 H ,D V X 【X S 0 ] +0
方法 。 循环 内的 主要指 令采 用变 址寻址 。 中的形式 地 其 址 为这 片连 续存 储 区 的始地 址 .初始 时 变址 寄存 器 的 内容 为 0 ,每 循环 1次后 将变 址寄 存器 的内容 增加 l 。
方 式 常 见 的有 立 即寻 址 。 存 器 寻 址 , 接 寻址 , 寄 直 寄存 作 数存 放 所指 定 的寄 存器 中 .这种 成为 寄存 器 直接 寻
器 间 接寻址 , 寄存器 相对 寻址 , 址 寻址 , 址 寻址 , 变 基 基 址 , 和前 面 的直接 寻址 方 式 差不 多 。 同的只是 地址 它 不 址 加 变址 寻址 等 码 字段 中给 出的是 寄存 器号 。 寄存器 寻址 , 就是 按指定 的寄存 器代 号 。对 寄 存 器进 行 读 写 .如 8 8 0 6的 指 令 本 文 主要 探讨 一 下几 种 寻 址 方 式 的 区别 与联 系 以 MO AX, X 是 将 B 中 的 内 容 传 送 到 A 中 。 X V B X X B 及 教 育 的心得 .下 面先 谈 一下 在 教 学 中的几 种 指令 的 为 源地 址 . X为 目标地 址 。 A
2 1 年 第 5期 0 1

建 电

25 0
巧 用 类 比法讲 授 汇 编 指 令 的 寻 址 方式
黄 毅 益
(江 苏常 熟职教 中心 江 苏 常 熟 2 5 0 1 5 0)
【 摘 要 】 采 用类 比 法 , : 掌握 汇编语 言程 序 的指 令 寻址 方式 。 【 关键 词 】 汇编 语 言 类 比法 寻 址 方式 指 令 系统 :
2 指 令 系 统 的 知 识 点 、 定 义 和用法 2 变址 寻 址 : . 4
为说 明几 种 寻址方 式 的 区别 , 作如 下 1 表格 : 个
名称 l 立即寻址方式 数据位置及来潦 操作数据在指令中 倒子 MO A , 00 V X 20 H
指令 的 格式 为 O + 式 地 址 ( 址 寄 存 器 ) 指令 P形 变 , 中给 出 的形式 地址 ( 称 为偏 移量 或位 移量 ) 也 需要 加 上 变址 寄 存器 总 的 内容才 形成 操 作数 的有 效地 址 .这 是 程 序设 计 中广 泛采 用 的方式 . 例如 。 了从一 片连 续存 为 贮 单元 中读 出各个 数 据 .可采用 一组 指 令循 环执 行 的
1 引 言 、
方 法成 为 直接 寻址 。 就 想成 : 实 你 已经 站在 你 要找 的 I_ 号 ( ” 其 I] 『户 家)面
虽 然 现在 高 级语 言 很 多 .但 由于 汇编 可 以直接 访
问硬 件 , 能直 接控 制 硬件 的 唯一 语 言 。 是 目前 还 不 能够 前 了. 接敲 门进 去就 O 了! 直 K
相关文档
最新文档