指令格式及寻址方式

合集下载

第4章_计算机指令构成和寻址方式

第4章_计算机指令构成和寻址方式

Pentium指令系统所支持的数据类型:
1. 整数:补码表示的二进制数,字节(8位)、字(16位)和双字(32 位)3种。
2. 序数:无符号二进制数,字节(8位)、字(16位)和双字(32位)3 种。
3. UBCD数:未压缩的(unpacked)BCD数,数字值0到9,每个数字 占一个字节。 4. BCD数:压缩的BCD数,一个字节可以表示2位数字,从00到99。 5. 指针:32位有效地址,指出段内的地址偏移量。
二地址指令
一地址指令 零地址指令
add r1,r2
add r1 add
r1←r1+r2
A←A+r1 T←T+(T-1)
寻址方式:
寻址方式指的是如何描述一个操作数或下一条指令的地址, 即确定操作数或下一条指令地址的方法。常用的寻址方式有 立即数寻址、寄存器寻址、直接寻址、间接寻址、相对寻址 等。
指令长度: 指令长度有固定长度和可变长度两种。RISC处理机一般采用 固定长度的指令格式,例如SUN SPARC的指令长度均为32位, 与数据字长相同。定长指令格式的好处在于指令译码和流水 线执行比较容易。Pentium处理机的指令长度是可变的,常用 指令用较少的二进制位表示,不常用的指令使用较多的位表 示,它的好处是可以缩短指令的平均长度。 指令系统设计中的问题: 指令种类和寻址方式越多越好,还是越少越好?指令种类越 多、寻址方式越复杂,说明处理机的功能越强。但同时,实 现一条复杂指令需要较多的逻辑门电路,执行一条复杂指令 所化费的时间也比较长,而且处理机的设计复杂度提高、设 计周期增长,并且复杂指令的使用频率较低。指令种类少、 寻址方式简单的好处是可以提高时钟频率,缩短指令周期, 从而很快完成一条指令的执行。但并不是越简单越好,指令 太简单,完成一次比较复杂的操作往往需要一长串的简单指 令序列,也会使执行时间变长,同时也使程序变长。

高二微机学考操作题知识点

高二微机学考操作题知识点

高二微机学考操作题知识点一、基础知识点1. 二进制和十进制的转换方法:在微机学考操作题中,常常需要将二进制数转换成十进制数或相反。

二进制数转换为十进制数的方法是,将每一位的二进制数乘以2的n次方,再将结果相加即可得到十进制数。

十进制数转换为二进制数的方法是,将十进制数除以2,取余数,然后倒序排列所得的余数。

2. 位、字节与字的关系与计算:在微机学操作题中,要了解位、字节和字的概念以及它们之间的关系。

一个位表示一个二进制数,8个二进制位组成一个字节,而一个字由多个字节组成。

3. 存储器的地址与容量计算:在微机学考操作题中,会涉及到存储器的地址和容量计算。

存储器的地址是从0开始连续编号的,而容量的单位常用字节表示。

计算存储器容量的方法是,将存储器的字节数除以1024,即可得到以KB为单位的容量。

二、指令系统1. 指令的格式与寻址方式:在微机学考操作题中,指令的格式包括操作码、寻址方式和操作数。

操作码表示指令的类型,寻址方式决定了如何获取操作数。

常见的寻址方式有直接寻址、立即寻址、寄存器寻址和间接寻址。

2. 数据传送指令的使用与特点:数据传送指令用于将数据从一个地方传输到另一个地方。

在微机学操作题中,要了解不同数据传送指令的使用方法以及它们的特点。

常见的数据传送指令有MOV、LOAD和STORE等。

3. 算数和逻辑运算指令的使用与特点:算数和逻辑运算指令用于进行数值运算和逻辑运算。

在微机学操作题中,要了解不同算数和逻辑运算指令的使用方法以及它们的特点。

常见的算数和逻辑运算指令有ADD、SUB、AND和OR等。

三、微处理器1. CPU的工作原理与主要组成部分:在微机学考操作题中,要了解CPU的工作原理和主要组成部分。

CPU包括运算器、控制器和寄存器等组件,其中运算器负责执行算术和逻辑运算,控制器负责解码和执行指令,寄存器用于存储数据和地址等。

2. 寄存器的种类及其作用:在微机学考操作题中,要了解不同类型的寄存器及其作用。

寻址方式

寻址方式
(3)基址加变址 指令给出两个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。
格式 操作码θ RX Rb D
变址寄存器号 基址寄存器号 位移量
S =((RX)+(Rb)+ D) 便于处理两维数组。
S =((RX)+(Rb)+ D) 便于处理两维数组。
例. 访问二维表格。
(RX)
((RR令bX)):指+D向指向一行各行中起各始元素;(Rb。)+D
DRR为bX初初表值值格为 为首00, ,址每 每访 访问问一一行列,,((RRbX))++41;。
(4)相对寻址
指令给出位移量,PC内容与位移量之和为有
效地址。
或隐含指定 位移量
格式 操作码θ PC ±D
有效地址相对 PC上下浮动,给
S =((PC)±D)
编程带来方便。
(5)页面寻址 指令给出位移量,PC的高位部分与位移量拼 接,形成有效地址。
栈顶
S
... ... ...
堆栈向上生成 压栈:S-P(S自P动),减自1,减再型间存址数。。SP 栈顶 出栈:先 (SP取)数+,,自SP增再型自间动址加。1。
... ... ...
M

S

SP既可出现在指令中,也可隐含约定。
4.变址、基址寻址及其变化 (1)变址寻址 指令给出一个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。
存储空间中任何一个定长区 Rb
间(4K)。
4K
改变Rb的内容,程序能访问
存储空间中任何一个与基址
保持相同距离 …...
M D=2
D=2
便指于定的访元问素两。维数组中某类 基80址X8方6计式算的物一理种地变址化:——

第2章寻址方式

第2章寻址方式
22
第十九页,编辑于星期二:十九点 四十一分。
寄存器间接寻址方式举例 1
例9. MOV AX,[BX]
; AX ? (DS:[BX] )
注意它与寄存器寻址方式在形式上的区别:
MOV AX ,BX
;(AX) ? (BX)
源操作数的物理地址为:
PA = (DS) × 10H +(BX) 若(DS)= 3000H,(BX)= 78H, (30078H)= 12H 则:PA =3000H ×10H+78H =30078H
找到操作数 ;
? 数据寻址方式以 MOV DST ,SRC 为例讨论。
7
第六页,编辑于星期二:十九点 四十一分。
计算机中操作数保存的地点
1.指令中 2.CPU 的寄存器中 3.存储器中 4.I/O接口寄存器中
4. 在访问I/O 的专用 指令中指定接口中寄 存器的端口号。
1.由程序员直接写在指令中
2. 在指令中指定寄存器名
地址是什么。。。
?操作码 域:指定要完成的操作。
?操作数 2:源操作数 ,表示参与指令操作的一个对象;
?操作数 1:目的操作数 ,它不仅可以作为指令操作的一
个对象,还可以用来存放指令操作的结果。
?分号后的内容是对指令的解释。
例: MOV AH , 10
; (AH)= 10
2
第二页,编辑于星期二:十九点 四十一分。
即用寄存器存放源或目的操作数。
? 存储器操作数
存储器操作数是指操作数存放在主存储器中。
因此在汇编指令中应给出的是存储器的地址。
5
第四页,编辑于星期二:十九点 四十一分。
指令操作数的表达
? r8 —— 任意一个 8位通用寄存器 ? r16—— 任意一个 16位通用寄存器 ? reg—— 代表r8或r16 ? seg—— 段寄存器 CS/DS/ES/SS ? m8 —— 一个 8位存储器操作数单元 ? m16—— 一个16位存储器操作数单元 ? mem—— 代表 m8或m16 ? i8 —— 一个 8位立即数 ? i16 —— 一个 16位立即数 ? imm —— 代表i8或 i16 ? dst /src —— 目的操作数 / 源操作数

第二章 80868088寻址方式和指令系统

第二章 80868088寻址方式和指令系统

(5)奇偶标志PF
用于反映运算结果中“1”的个数。如果“1”的个数为偶数,则OF被置1,否则OF被清0。
(6)辅助进位标志AF
在字节操作时,如发生低半字节向高半字节进位或借位;在字操作时,如发生低字节向高字 节进位或借位,则辅助进位标志AF被置1,否则AF被清0。
②状态控制标志
(1)方向标志DF
方向标志决定着串操作指令执行时,有关指针寄存器调整方向。 当DF为1时,串操作指令按减方式改变有关的存储器指针值, 当DF为0时,串操作指令按加方式 改变有关的存储器指针值。
其中:存储单元的物理地址是12345H, 标出的:两个重叠段的段值分别是:1002H和1233H, 在对应段内的偏移分别是2325H和0015H。
采用段值和偏移构成逻辑地址后,段值由段寄存器给出,偏移可由指令指针IP、堆栈指针SP 和其他可作为存储器指针使用的寄存器(SI、DI、BX和BP)给出,偏移还可直接用16位数给 出。
图中指令存放在代码段中,OP表示该指令的操作码部分 再例如: MOV AL,5 则指令执行后,(AL)=05H
MOV BX,3064H 则指令执行后, (BX)=3064H
2、寄存器寻址方式
操作数在CPU内部的寄存器中,指令指定寄存器号。
对于16位操作数数,寄存器可以是:
AX、BX、CX、DX、SI、DI、SP和BP等;
指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段值和偏移自动 形成20位物理址。
3、段寄存器的引用
由于8086/8088CPU有四个段寄存器,可保存四个段值。所以可同时使用四个段值,但这四个 段有所分工。
在取指令的时候,自动引用代码段寄存器CS,再加上由IP所给出的16位偏移,得到要取指令 的物理地址。

汇编语言第3章 指令系统和寻址方式

汇编语言第3章 指令系统和寻址方式

5.寄存器相对寻址方式(register relative addressing)
EA=基址(base) 或变址( index)+偏移量 (displacement)
基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段
(SI) 物理地址=(DS)*16+(BX)+displacement
(DI) =(SS)*16+(BP)+ (SI)+displacement (DI)
例:mov AX,ARRAY[BX][DI] (DS)=1000H,(BX)=1200H, (DI)=1000H, ARRAY=1000H 物理地址=DS*16+(BX)+(DI)+ARRAY =DS*16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H 则,(AX)=1234H 允许段超越。 例:mov AL,ES:ARRAY[BX][DI] 用途:处理成组数据(举例说明)
2.段内间接寻址(intrasegment indirect addressing) (IP)新=EA=寄存器或存储单元的内容 寄存器:所有寄存器寻址方式可用的寄存器 存储单元:所有存储单元寻址方式均适用 例:JMP SI (IP)=(SI) JMP WORD PTR VAR或简写JMP VAR (DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H (12000H)=1234H 则,(IP)新=1234H
4.寄存器间接寻址方式(register indirect addressing)
EA=基址(base) 或变址( index) 基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段 (SI) 物理地址=(DS)*16+(BX) (DI) =(SS)*16+(BP)

【计算机组成原理】指令系统-寻址

【计算机组成原理】指令系统-寻址

【计算机组成原理】指令系统-寻址⼀、指令和数据的寻址⽅式操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号在存储器中,操作数或指令字写⼊或读出的⽅式,有地址指定⽅式、相联存储⽅式和堆栈存取⽅式。

寻找⽅式:当采⽤地址指定⽅式时,形成操作数或指令地址的⽅式。

寻址⽅式分为两类:指令寻址和数据寻址。

1)指令寻址:确定下⼀条预执⾏指令的指令地址a、顺序寻址:(PC)+1->PC 程序计数器⾃动加1b、跳跃寻址:由转移指令指出2)数据寻址:确定本条指令的操作数地址指令中所给出的地址码,并不⼀定是操作数的有效地址。

寻址过程就是把操作数的形式地址,变换为操作数的有效地址。

例如:⼀种单地址指令的结构如下所⽰,其中⽤X I D各字段组成该指令的操作数地址。

⼆、寻址⽅式1、隐含寻址(操作数在累加寄存器中)在指令中不明显的给出⽽是隐含着操作数的地址例如:单地址的指令格式,没有在地址字段指明第⼆操作数地址,⽽是规定累加寄存器AL或AX作为第⼆操作数地址,AL或AX对单地址指令格式来说是隐含地址eg: MOV AL ,LSRC_BYTEMUL RSRC_BYTEADD寻址特征A操作数地址隐含在操作码中,(寻址特征指明寻址类型)。

另⼀个操作数隐含在ACC中先在内存中地址为A的地⽅找到⼀个操作数,另⼀个操作数隐含在寄存器ACC⾥,从ACC⾥取出另外⼀个操作数,然后和给出的A 地址中的数相加暂存在ACC中。

2、⽴即寻址形式地址A就是操作数本⾝OP⽴即寻址特性 #A指令执⾏阶段不访存A的位数限制了⽴即数的范围3、直接寻址EA=A直接根据读内存找到操作数,形式地址不需要经过任何处理。

执⾏阶段访问⼀次存储器A的位数决定了该指令操作数的寻址范围MOV AX,[2222H]:将有效地址为2222H的内存单元的内容读到累加器AX中4、间接寻址EA=(A)有效地址由形式地址间接提供,形式地址是操作数的地址的地址OP间接寻址标识 A根据A的内容到内存中寻找到的是操作的数地址,再根据这个地址去找操作数。

指令格式及寻址方式

指令格式及寻址方式
指令执行前,计算机各寄存器的内容为: DS=2000H,BX=2150H,T{ABLE=2060H,IP=2100H。操作数 存储单元的物理地址= } 16×DS+TABLE+BX=20000+2060+2150=241B0H 执行前,IP=2100H,(241B0H)=50H,(241B1H)=30H 执行后,IP=3050H 从此例看出,转移地址存放在数据段的相继两个存储单元 中,而存储单元的有效地址是TABLE和BX寄存器的内容相 加而成。注意,TABLE
特点:指令中直接给出操作数在段内的偏移量,段基 址隐含给出或用段前缀指明。该寻址方式适用于处理单个变
一般操作数存放在数据段,故操作数的物理地址为 物理地址=(DS)× 16D+ EA
=(段基址的寄存器)× 16 + 偏移地址
1.3与数据有关的寻址方式
【例3.4】已知(DS)=4000H,[42000H]=3355H MOV AX,[2000H]
1.3与数据有关的寻址方式
(3)寄存器相对寻址方式(register relative addressing 特点:操作数的有效地址是一个基址寄存器或变址寄存器的 内容和指令中指定的8位或16位位移量(即偏移量)之和。 适用于表格处理,修改基址或变址寄存器的内容来取得表格
{ 物理地址=16D×(DS){}+
ADD AX, BX
1.18086/8088的通用指令格式
对有操作数的指令,在执行指令所规定的操作之前首 先要寻找操作数。指令中的操作数字段实质上是指出参加 操作运算的操作数存放在何处。一般来说,操作数存放在 指令代码中,称为立即数;操作数存放在CPU寄存器中, 称为寄存器操作数;操作数存放在内存单元中,称为存储 器操作数; 操作数也可存放在I/O端口内。寻找这些操作 数的方式称为寻址方式,即指令中用于说明操作数或操作 数所在地址的方法。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

指令格式及寻址方式
一、指令格式
指令的表示方法称为指令格式,它包括指令的长度和指令内部信息的安排等内容。

一条指令一船由两部分组成,即操作码和操作数。

操作码用来规定指令进行什么操作,而操作效则表示指令操作的对象。

操作数可以直接是一个数(立即数),也可以是一个数据所在的空间地址,即在执行指令时从指定的地址空间取出操作数。

单片机中的指令并不是固定的长度,对于不同的指令,指令的字节数不同。

MC5—5l 单
片机用机器语言表示的指令格式按字节划分,有一字节指令、两字节指令和三字节指令三种。

1.一字节指令
一字节指令中的8位二进制代码既包含操作码的信息,也包含操作数的信息。

在一字节指令中,有些指令的指令码中隐合着对某一寄存器的操作,NXP代理商无需再具体指定操作数。

例如数
据指针DPTR加1指令;INC DPTR,其指令码为:
另外有些指令的操作数在通用寄存器中,由指令码中的rrr三位的不同编码来指定该
寄存器。

例如:寄存器向氮加器A传送数据指令:MOV A,Rn,其指令码为:
其中,高5位表示操作内容——传送,最低三位rrr的不同二进制编码用来表示从哪一个寄
存器取数。

2.二字节指令。

二字节指令中的第一个字表尔操作码,第二个字节表示操作数,这里的操作数既可能是立即数,也可能是地址。

其指令格式为:
3.三字节指令
三节节指令中,第一字节表示操作码,另两个字节是操作数,其指令格式为
绝大多数指令执行时都需要使用操作数,因此如何寻找存放操作数的单元地址和提取操作数就变得十分重要。

Atmel代理所谓寻址方式就是如何找到存放操作数的地址,把操作数提取出来
的方法。

寻址方式与计算机的存储器空间结构有关,寻址方式越多,则计算机的功能越强,灵活性也越大,能更有效地处理各种数据,但指令系统也会相应的复杂。

MCS-51单片机共有七种寻址方式。

下面分别加以介绍。

1.寄存器寻址
寄存器寻址是将所选定的工作寄存器组中的8个工作寄存器(R0—R7)的内容作为操
作数。

指令操作码的低三位的不同组合分别代表R0—R7中的某一个。

A、B、DPTR和C(位累加器)也能作为寄存器来寻址。

例如:
这里源操作数和目标操作数均采用寄存器寻址.寄存器中的内容为操作数。

2.直接寻址
在直接寻址方式中、操作数由指令中的一个8位地址单元所指定。

只有内部RAM中的00H~7FH地址单元和80H~FFH地址中的专用寄存器可直接寻址,且直接寻址是访问专
用寄存器的唯一方法。

采用直接寻址方式的指令是双字节指令,第一个字节是操作码,第二个字节是内部RAM的低128字节或专用寄存器的地址。

例如:
此例中,源操作数采用直接寻址方式,表示把内部RAM中30H单元的内容送入A。

指令代码为E5H、30H。

3.寄存器间接寻址
在寄存器间接寻址方式个,指令中给出的杏存器的内容为操作数的地址,而不是操作数本身。

内部RAM和外部RAM都可以间接寻址。

当访问内部RAM或外部RAM的低256字节时,间址寄存器可以是选中寄存器组中的R0或R1,即内R0或R1间接给出操作数所在的地址‘
当访问外部RAM时,16位间址寄存器只能使用16位数据指针寄存器DPTR,这时可对整个外部RAM空间(64KB)寻址。

PUSH和POP指令的执行也采用寄存器间接寻址,这时堆栈指针SP用作间址寄存
器。

堆栈指针可驻留在内部RAM的任何地方;例如:
上述两条指令中,日标操作数均采用寄存器间址方式,R1及DPTR的内容为操作数地址。

其中@为间接寻址的标识符。

4.立即寻址
止即寻址是指操作数在指令中直接给出。

通常把出现在指令中的操作数称为立即数。

立即寻址方式的指令多足双字哨的.其中第一字节是操作码.第二字节是立即数。

为了与直英寻址指令中的直接地址相区别,在立即数前面加“#”标识符。

例如:
例中源操作数为止即寻址方式,表示方即数64H送给累加器A。

其指令代码为74H、64H。

5.变址寻址
变址导址是以DPTR或PC为基址寄存器,累加器A为变址奇行器,并将两者的内存相加所得的16位地址作为操作数的地址。

这种方式常用于查表操作,且只能对程序存储器进行寻址。

例如:
上面两条指令的源操作数均为变址寻址。

对第二条指令要注意的是,指令中的PC值为下一条指令的地址。

现假设DPTR的内容为1000H,A的内容为0FH,则指令MOVC A,@A十DPTR的执行过程如图3—1所示。

上述变址寻址形Atmel成的操作数地址为1000H十0FH=1000FH,而1000FH地址单元的内
容为FFH,该指令执行后,A的内容为FFH。

wxq$#。

相关文档
最新文档