微型计算机原理寻址方式总结
微机原理寻址方式
![微机原理寻址方式](https://img.taocdn.com/s3/m/f4d57204cdbff121dd36a32d7375a417866fc1c5.png)
微机原理寻址方式1、立即寻址(immediate addressing )双字节指令,第一个字节是操作码,第二个字节是操作数,操作数在指令中直接给出,故称为立即数。
在立即数前面必须加上前缀“#”。
如:MOV DPTR,#1234H1234H是立即数,指令功能是把16位立即数1234H送到数据指针DPTR中,如图。
注意:立即寻址只能用于源操作数。
MOV A,#12H (√)MOV DPTR,#1200H (√)MOV #1200H,DPTR (×)2、直接寻址(direct addressing)在指令中直接给出操作数单元的地址。
如:MOV A,3AH指令功能:把片内RAM中3AH单元内的数据传送给累加器A。
如图所示:直接寻址方式只能给出8位地址,限于片内RAM:(1)低128单元,在指令中直接以单元地址形式给出。
(2)特殊功能寄存器,在指令中直接以单元地址形式给出,还可以寄存器符号形式给出。
如:PUSH DPH==PUSH 83H。
直接寻址访问累加器A时,用ACC表示累加器,以便与寄存器寻址方式区别。
3、寄存器寻址(register addressing)在指令中将指定寄存器的内容作为操作数。
寄存器寻址方式中,用寄存器名表示寄存器。
寻址范围:四组通用寄存器Rn(R0~R7)、部分专用寄存器( A, B, DPTR,)。
如:INC R0指令功能:把寄存器R0的内容加1,再送回R0中。
4、寄存器间接寻址(register indirect addressing )在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才是操作数。
在该寻址中,寄存器的名称前需加前缀“@”。
例如,指令MOV A,@R0指令功能:若R0寄存器的内容是3AH,指令的功能是以3AH为地址,将3AH地址单元的内容送到累加器A中。
如下图:寄存器间接寻址的寻址范围:(1)片内RAM的低128单元,只能采用R0或R1为间接寻址寄存器。
微机原理
![微机原理](https://img.taocdn.com/s3/m/25bd660cde80d4d8d15a4ff9.png)
1、微型计算机系统是由硬件系统和软件系统两部分组成。
2、从编程结构上看,8086CPU是由指令执行部件和总线接口部件两部分组成。
3、8086CPU有16根数据线,20根地址线,具有1MB字节的存储器寻址空间。
4、逻辑地址为2000H:1234H的存储单元的物理地址是21234H。
5、8086CPU写入一个规则字,数据线的高8位写入奇存储体,低8位写入偶存储体。
6、8086CPU有最小模式和最大模式两种工作模式,当MN/MX0V时,8086工作在最大模式。
7、CPU和外设之间的数据传送方式有:程序方式、中断方式和DMA方式三种。
(×)1、8088CPU与8086CPU一样,有16根数据线。
(×)2、段内转移指令执行结果要改变IP、CS的值。
(∨)3、在串操作指令执行时,若DF=0,则地址值会自动增加。
(×)4、8086CPU从内存中读取一个字(16位)必须用两个总线周期。
(×)5、MOV AX,[BP]的源操作数物理地址为16d ×(DS)+(BP)。
(×)6、指令MOV CS,AX是正确的。
(×)7、REP的判断重复条件是(CX)=0。
(×)8、指令RCR AL,2是错误的。
(√)9、当8086CPU响应中断时,会从INTA输出两个连续的负脉冲应答信号。
(√)10、堆栈指令的操作数均为字。
1、8086CPU复位后,程序的起始物理地址为:(B)A、00000HB、FFFF0HC、10000HD、F0000H2、8086CPU的中断相量表位于:(A)A、00000H~003FFH区B、10000H~103FFH区C、0F000H~0F3FFH区D、F0000H~F03FFH区3、8086CPU可屏蔽中断的使能位为:(B)A、DFB、IFC、TFD、PF4、下面哪个运算符是用来取地址的段值:(B)A、OFFSETB、SEGC、SEGMENTD、ASSUME 5、标志寄存器压栈指令为:(C)A、SAHFB、LAHFC、PUSHFD、POPF6、指令MOVSB的功能是:(A)A、将DS:[SI]所指出的存储单元的字节送到ES:[DI]所指出的存储单元。
微机原理期末重点总结
![微机原理期末重点总结](https://img.taocdn.com/s3/m/2c08cd29ccbff121dd3683be.png)
第一章1.微型计算机(Microcomputer):采用微处理器为核心构造的计算机2.微处理器(Microprocessor):微型机的运算和控制核心,称为中央处理单元(CPU:Central Processing Unit),将控制器和运算器集成在一片或几片芯片上构成3.微型计算机(MicroComputer)是指以微处理器为核心,配上存储器、输入/输出接口电路等所组成的计算机。
4.微型计算机系统(Micro Computer System)是指以微型计算机为中心,配以相应的外围设备、电源和辅助电路(统称硬件)以及指挥计算机工作的系统软件所构成的系统。
5.总线:计算机中各功能部件间传送信息的公共通道,是微型计算机的重要组成部分。
5.1地址总线AB:在对存储器或I/O端口进行访问时,通过地址总线传送由CPU提供的要访问存储单元或I/O端口的地址信息。
(单向总线)数据总线DB:从存储器取指令或读写操作数,对I/O端口进行读写操作时,指令码或数据信息通过数据总线传输。
(双向总线)控制总线:各种控制或状态信息通过控制总线传输6. 基数(Radix):一个数制所包含的数字符号的个数,被称为基数,记为r。
7.在二进制计数系统中,最高位表示符号位,“0”表示正数,“1”表示负数,其余表示数值。
7.1补码:反码末位(包括小数)加17.2由原码直接求补码:二进制数低位(包括小数)的第一个1右边保持不变(包含此1),左边依次求反8.BCD码用4位二进制数表示1位十进制数,只取十个状态,而且每四个二进制码之间是“逢十进一”。
(常使用8421码:即0000~1001)8.1“0~9”的ASCII码是30H~39H“A~Z”的ASCII码是41H~5AH“a~z”的ASCII码是61H~7AH第二章1.总线接口单元BIU:取指令时,BIU负责从内存的指定地址处取出指令,送到指令队列流中排队,执行指令中需要操作数时,也由BIU从内存的指定地址中取出,送给EU参加运算。
【计算机组成原理】指令系统-寻址
![【计算机组成原理】指令系统-寻址](https://img.taocdn.com/s3/m/ff6cbc130640be1e650e52ea551810a6f524c82e.png)
【计算机组成原理】指令系统-寻址⼀、指令和数据的寻址⽅式操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号在存储器中,操作数或指令字写⼊或读出的⽅式,有地址指定⽅式、相联存储⽅式和堆栈存取⽅式。
寻找⽅式:当采⽤地址指定⽅式时,形成操作数或指令地址的⽅式。
寻址⽅式分为两类:指令寻址和数据寻址。
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的内容到内存中寻找到的是操作的数地址,再根据这个地址去找操作数。
指令格式及寻址方式
![指令格式及寻址方式](https://img.taocdn.com/s3/m/fe25688027284b73f342500c.png)
特点:指令中直接给出操作数在段内的偏移量,段基 址隐含给出或用段前缀指明。该寻址方式适用于处理单个变
一般操作数存放在数据段,故操作数的物理地址为 物理地址=(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端口内。寻找这些操作 数的方式称为寻址方式,即指令中用于说明操作数或操作 数所在地址的方法。
MCS-51单片机寻址方式小结
![MCS-51单片机寻址方式小结](https://img.taocdn.com/s3/m/59027a0c102de2bd97058812.png)
MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结20__-08-2920:34:02|分类:エ程|标签:|字号大中小订阅MCS-51单片机指令系统共使用7中寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址等。
寻址方式定义操作数存放(1)通用寄存器R0~R7;寄存器于寄存器中,(2)部分专用寄存器,例如累加器A、寄存器B以寻址指令中给出数据指针DPTR等名寄存器存放操作数的(1)内部RAM中的低128地址单元,地址范围为内存单元地址00H~FFH;直接寻址直接写在指令中立即数操作数直接寻址写在指令中(2)专用寄存器。
专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。
源操作数为立即数,立即数前面必须加“#”号,以区别立即数和直接地址(1)内部RAM的低128字节。
对内部RAM的低128字节单元的间接寻址,只能使用R0或R1做间将存放操作接寻址寄存器,其通过形式为@Ri(i=0或1);MOVP1,#55HMOVDPTR,#20__HMOVR1,20HMOVA,P1CLRAMOVP1,R4MOVA,R1寻址区域指令举例数的内存单元(2)外部RAM的64K字节。
对外部RAM的64KMOVA,@R0寄存器的地址放在寄字节的间接寻址,使用DPTR作间接寻址寄存器,MOVXA,@DPTR间接寻址存器中,指令其形式为@DPTR;MOVXA,@R0中只给出该寄(3)外部RAM的低256字节。
外部RAM的低256存器字节是一个特殊的寻址区,除了可以使用DPTR作间接寻址寄存器外,还可以使用R0或R1作间接寻址寄存器将基寄存器变址寻址与变址寄存器的内容相(1)变址寻址是专门针对程序存储器的寻址方式,所以只能对程序存储器进行寻址,寻址范围为64K字节;MOVCA,@A+PC加,结果作为操作数的地址(2)变址寻址指令只有2条:MOVCA,@A+PCMOVCA,@A+DPTR将程序计数器PC的当前内容与指令相对寻址中的操作数相加,其结果作为跳转指令的转移地址(1)内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,每个单元包括8个位,共按位进行的位寻址操作(2)特殊功能寄存器SFR中的11个寄存器可以位寻址,包括83个位计128个位,位地址为00H~7FH;MOVC,0D0HMOVC,0DOH.0MOVC,PMOVC,PSW.0专门为改变程序执行方向而设置的SJMP54H扩展阅读:课题MCS-51型单片机的寻址方式广告灯设计软件部分课题MCS-51型单片机的寻址方式授课方式:讲授教学目的:1.让学生了解汇编语言指令的格式;2.让学生掌握单片机指令的7种寻址方式。
微机原理的三种总线和CPU的寻址方式完美版
![微机原理的三种总线和CPU的寻址方式完美版](https://img.taocdn.com/s3/m/15b5d632580216fc700afd38.png)
高8位
低8位
CPU 奇存储体
A0~A18
A0~A18
1
0
偶存储体
8、8086与奇偶存储体连接图
低8位数据
高8位数据
① CPU的A1~A19与奇偶存储体的A0~A18对应 相连,同时选通某字对应的高、低字节存储单元;
②A0低电位选中偶存储体,输入/出该字的低8位数据; ③BHE低电位选中奇存储体输入/出该字的高8位数据。
2.3 试说明段寄存器的作用。 答:8086微处理器中的16位寄存器,用来存放对应的存储段的 段基值—段起始地址的高16位。通过段寄存器值和指令中给出 的16位段内偏移量,可得出存储器操作数的物理地址(20位)。
2.4 试说明8086的引脚信号中M/IO、DT/R、RD、WR、ALE和BHE 的作用。 答:8086的引脚信号中 M/IO*的作用是,存储器/I/O选择信号(输出)。用于区分当前 操作是访问存储器还是访问I/O端口。若该引脚输出高电平,表示 访问存储器;若输出低电平,表示访问I/O端口。 DT/R*的作用是,数据发送/接收信号(输出)用于指示数据 传送的方向,高电平表示CPU发送数据,低电平表示CPU接收数据。 该信号常用于数据缓冲器的方向控制。(T) RD*的作用是,读控制信号(三态输出),低电平有效时, 表示CPU正从存储器或I/O端口读取信息。 WR*的作用是,写控制信号(三态、输出),低电平有效。有 效时表示CPU正将信息写入存储器或I/O端口。 ALE的作用是,地址锁存允许,高电平有效。有效时表示地址 线上的地址信息有效。 BHE*的作用是,数据总线高8位输出允许 / 状态S7信号。在 总线周期的T1时刻,为数据总线高8位允许信号BHE,低电平有效, 有效时允许高8位数据在D15—D8总线上传送。
8086-8088 CPU的寻址方式
![8086-8088 CPU的寻址方式](https://img.taocdn.com/s3/m/db855aebff00bed5b8f31d4a.png)
MOV AX,ES:[VALUE]
微机原理
1.3 寄存器寻址方式 寄存器寻址:操作数存放在CPU内部的寄存器中 例 :MOV AX,DX ; AX←DX 1.4 寄存器间接寻址 寄存器间接寻址:有效地址包含在基址寄存器 BX、BP或变址寄存器SI、DI中直接寻址 例 MOV AX,[BX]
MOV AX,[BP] 1.5 寄存器相对寻址 寄存器相对寻址方式:有效地址在SI、DI、BX 或BP之一,加上指令中8位或16位相对地址 例 MOV AL,ADDR[SI]
微机原理
1.6 转移类指令的寻址方式 1.段内相对转移寻址 有效地址EA为当前IP寄存器内容与指令中指定 的8位或16位有符号数之和 例:JZ DISP 其中DISP是符号地址 2.段内间接转移寻址 有效地址EA为寄存器或存储器单元的内容,这 种寻址方式不能用于条件转移指令。 例:JMP CX
微机原理
微机原理
1.6 基址变址寻址方式 操作数的有效地址等于一个基址寄存器的内容 和一个变址寄存器的内容之和 基址寄存器:BX、BP 变址寄存器:SI 、DI
MOV AX,[BX] [DI] 也可写成 MOV AX,[BX+DI] 1.7 相对基址变址寻址方式 操作数的有效地址等于一个基址寄存器的内容、 一个变址寄存器的内容和一个8位或16位的位移 量之和。 MOV AX,ADDR[BP+SI]
微型计算机原理第3章_1_寻址方式
![微型计算机原理第3章_1_寻址方式](https://img.taocdn.com/s3/m/a7780212866fb84ae45c8d16.png)
8086/8088的寻址方式 第三章 8086/8088的寻址方式 和指令系统主 讲 : 乔 瑞 萍学习要点数据寻址的8种寻址方式,I/O端口寻址的 2种寻址方式 程序转移地址的4种寻址方式 掌握8086指令(操作码助记符,可以使用 的寻址方式) 了解80386新增寻址方式和指令3.1 计算机指令格式1、汇编指令格式: OP.C OP.D (Operating Code、Operating Data) 注:OP.C指操作码助记符 OP.D指操作数部分,又称地址码。
(实际上的OP.C、OP.D都应该是二进制数,即 机器码。
)2、根据OP.D中地址的个数,指令可分为: 1)零地址指令:只有OP.C,没有OP.D。
2)一地址指令:单OP.D。
3)二地址指令:双OP.D。
4)三地址指令:三OP.D。
3. 指令长度与字长的关系指令长度主要取决于OP.C的长度 OP.D地址的长度 OP.D地址的个数几个概念: 1)指令的长度指其机器码的长度,是字节的简 单倍数; 2)现代计算机广泛采用变字长指令格式:并非 所有指令的长度一致。
3)指令长度与其执行时间没有必然的联系,短 指令也可能执行时间长。
4)指令字长与内存的编址单位及CPU的机器字 长有关。
3.3 指令格式1、80x86指令编码格式(P81~83) 指令码是指每条指令所对应的二进制 编码,即机器码,这里只是要求大家了 解一下汇编指令如何翻译成机器码的, 即了解编译程序的工作,自学,不做要 求。
3.2 80X86的寻址方式 (addressing modes)P70,指令语句由操作码和操作数两部 分构成,操作码表示计算机执行什么操 作;操作数可能指明了参与操作的数本 身,或规定了操作数的地址。
8086/8088的寻址方式分为两类:数据寻址方式 转移地址寻址方式1)数据寻址方式(8种)(以通用传送指令MOV AX,SRC为例)定义:指令中用以说明或形成操作数有效地址 (Effective Adress)的方法,称为操作数的寻址 方式。
8086指令系统总结
![8086指令系统总结](https://img.taocdn.com/s3/m/7c2b474069eae009581bec2a.png)
8086指令系统总结学习微处理器及其程序设计,必须掌握微处理器的指令系统。
本章以 8086 微处理器为例介绍微型计算机的指令系统,包括指令格式、寻址方式和各类指令功能。
要明确各种寻址方式的区别和特点,掌握有效地址和物理地址的计算方法,要正确使用指令,掌握各类指令的功能、对标志位的影响和使用上的一些特殊限制。
能够编写小汇编程序,初步掌握汇编程序的编写和调试方法。
本章的重点难点内容是: 8086 的指令格式及寻址方式, 8086 的常用指令和8086 指令前缀的使用。
下面我们分别进行总结:一.8086寻址方式(1)操作数是数字,指令中立即写出数字------------立即数寻址MOV AX,1234H 解释此句意义(2)操作数是寄存器内容,指令中写出寄存器的符号---------寄存器寻址MOV AX,BX(3)操作数是存储单元内容,用括号括出存储单元有效地址-----直接寻址MOV AX,[1234H]MOV AX,ES:[1234H](4)操作数是存储单元内容,用括号括出寄存器或其表达式,寄存器或其表达式的值为存储单元有效地址-------------间接寻址MOV AH,[BX]MOV AX,ES:[SI]MOV AL,[BX+SI+5]===5[BX+SI]===5[BX][SI]二.8086指令系统1.数据传送指令(一)通用传送指令(1)MOV指令指令格式:MOV 目,源功能:将源操作数传送给目标操作数。
(2)堆栈操作指令进栈指令:PUSH格式:PUSH 源功能:将源操作数压入堆栈。
例:用堆栈指令完成上例的功能。
MOV AX,3000HMOV DS,AX ;段寄存器填充MOV SI,0100H ;基本指令执MOV DI,2000H ;行前的初值MOV CX,50NT:PUSH [SI] ;程序从这POP [DI] ;开始设计INC SIINC SIINC DIINC DILOOP NTMOV AH,4CHINT 21H(3)交换指令 XCHG格式:XCHG 目,源功能:源和目标中的内容交换。
微型计算机原理与接口技术课件-第三章指令系统和寻址方式
![微型计算机原理与接口技术课件-第三章指令系统和寻址方式](https://img.taocdn.com/s3/m/7b569104f90f76c660371a7f.png)
超越前缀。例如,数据若放在附加段中,则应在
有效地址前加“ES:”,这里的冒号“:”称为 修改
属性运算符,计算物理地址时要用ES作基地址, 而不再是默认值DS。
例如: MOV AX,ES:[500H] 该指令的源操作数的物理地址等于16×ES+
500H。
3.符号地址 在汇编语言中还允许用符号地址代替数值地
MOV CL,AH 注意:源操作数的长度必须与目的操作数一
致,否则会出错。例如,不能将AH寄存器的内 容传送到CX中去,尽管CX寄存器放得下AH的 内容,但汇编程序不知道将它放到CH还是CL中。
这种寻址方式的优点是:寄存器数量 一般在几个到几十个,比存储器单元少很 多,因此它的地址码短,从而缩短了指令 长度,节省了程序存储空间;另一方面, 从寄存器里取数比从存储器里取数的速度 快得多,从而提高了指令执行速度。
用汇编语言(即主要由指令系统组成的语言)编写的程 序称为汇编语言源程序,若直接将它送到计算机,机器
并不认识那些构成程序的指令和符号的含义,还必须由
汇编程序将源程序翻译成计算机能认识的二进制机器语
言指令(机器码)后,才能被计算机识别和执行,得到运算 结果。
8086指令系统采用变长指令,指令的长度可由l~6 字节组成。一字节指令中只包含8位操作码,没有操作数。 如清进位位指令CLC的机器码为1111 1000,可直接从指 令编码表中查到。对于大部分指令来说,除了操作码(不 一定是8位)外,还包含操作数部分,所以要由几个字节组 成。不同的指令,其操作码和寻址方式都是不一样的,
例如:AREA1 EQU 0867H MOV AX,AREA1
例如:AREA1 DW 0867H MOV AX,AREA1 (该指令也可
第4章 寻址方式与指令系统(二)
![第4章 寻址方式与指令系统(二)](https://img.taocdn.com/s3/m/b90133ff941ea76e58fa04fa.png)
6
传送指令
作用
把数据或地址传送到寄存器或存储器单元中
分类
分四大类 共14条指令
《微机接口技术》
7
传送指令的列表
分组 助记符 MOV PUSH POP XCHG 累加器专用传送指 令 功能 传送 压栈 弹栈 交换 操作数类型 字节/字 字 字 字节/字
通用数据传送指令
XLAT
1000H BX 0200H DI 1206H BX 0200H DI
执行前
执行后
注意区别于: MOV BX, [BX+DI+6H]
《微机接口技术》
27
b)LDS指令和LES指令说明
LDS指令(Load pointer into register & DS) 格式:LDS REG, SRC 操作:将源操作数(SRC)指定的FAR型指 针装入指定寄存器(REG)和DS寄存器 说明:
04H AL 66H AL
执行前
执行后
《微机接口技术》
21
b)IN指令和OUT指令说明
IN指令(输入) 格式:IN AC, PORT 操作:把外设端口的内容输入到AL或AX OUT指令(输出)
格式:OUT PORT, AC 操作:把AL或AX的内容输出到外设端口
《微机接口技术》
22
IN指令和OUT指令的寻址方式
XCHG指令示例
XCHG AL, BL XCHG BX, CX
XCHG [BX], CX
XCHG DS:[2530H], CX
《微机接口技术》
17
XCHG指令示例
用XCHG指令改进“存储器中两个字节单元 内容的交换”的程序段
MOV BL, DS:[2035H] MOV CL, DS:[2045H] MOV DS:[2045H], BL MOV DS:[2035H], CL MOV BL, DS:[2035H]
7种寻址方式
![7种寻址方式](https://img.taocdn.com/s3/m/05b4a09ea1116c175f0e7cd184254b35eefd1ad0.png)
7种寻址⽅式七种寻址⽅式1、(直接寻址⽅式)指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址⽅式为直接寻址⽅式。
在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使⽤段超越前缀,那么,操作数可存放在其它段。
例:假设有指令:MOV BX, [1234H],在执⾏时,(DS)=2000H,内存单元21234H的值为5213H。
问该指令执⾏后,BX的值是什么?解:根据直接寻址⽅式的寻址规则,把该指令的具体执⾏过程⽤下图来表⽰。
从图中,可看出执⾏该指令要分三部分:由于1234H是⼀个直接地址,它紧跟在指令的操作码之后,随取指令⽽被读出;访问数据段的段寄存器是DS,所以,⽤DS的值和偏移量1234H 相加,得存储单元的物理地址:21234H;取单元21234H的值5213H,并按“⾼⾼低低”的原则存⼊寄存器BX中。
所以,在执⾏该指令后,BX的值就为5213H。
由于数据段的段寄存器默认为DS,如果要指定访问其它段内的数据,可在指令中⽤段前缀的⽅式显式地书写出来。
下⾯指令的⽬标操作数就是带有段前缀的直接寻址⽅式。
MOV ES:[1000H], AX直接寻址⽅式常⽤于处理内存单元的数据,其操作数是内存变量的值,该寻址⽅式可在64K字节的段内进⾏寻址。
注意:⽴即寻址⽅式和直接寻址⽅式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。
在程序中,直接地址通常⽤内存变量名来表⽰,如:MOV BX, VARW,其中,VARW是内存字变量。
试⽐较下列指令中源操作数的寻址⽅式(VARW是内存字变量):MOV AX, 1234H MOV AX, [1234H] ;前者是⽴即寻址,后者是直接寻址MOV AX, VARW MOV AX, [VARW] ;两者是等效的,均为直接寻址2、(寄存器间接寻址⽅式)操作数在存储器中,操作数的有效地址⽤SI、DI、BX和BP等四个寄存器之⼀来指定,称这种寻址⽅式为寄存器间接寻址⽅式。
7 种寻址方式及其基本 指令
![7 种寻址方式及其基本 指令](https://img.taocdn.com/s3/m/a66a1a41a7c30c22590102020740be1e650ecce9.png)
7 种寻址方式及其基本指令寻址方式是计算机中指令执行时,计算需要访问内存地址的方式。
不同的寻址方式决定了如何计算出内存地址。
下面将介绍七种常见的寻址方式及其基本指令。
1.直接寻址:直接寻址是最简单的寻址方式,指令中直接给出了要访问的内存地址。
指令的操作数直接指向了存储器中的某个地址。
例如,"LOAD A, 100"表示从地址100加载数据到寄存器A中。
2.立即寻址:立即寻址方式是将常数直接作为指令操作数使用。
指令中给出了要操作的具体数值,而不是内存地址。
例如,"ADD A, 10"表示将寄存器A的值加上10。
3.间接寻址:间接寻址是通过间接寻址寄存器来确定要访问的内存地址。
指令中给出了要操作的寄存器,而不是具体的内存地址。
例如,"LOAD A,(B)"表示从存储器中加载B寄存器中的值作为内存地址,并将该地址处的内容放入寄存器A中。
4.寄存器寻址:寄存器寻址方式是将寄存器作为指令的操作数。
指令中给出了要操作的寄存器,而不是具体的内存地址或数值。
例如,"ADD A, B"表示将寄存器B的值加上寄存器A的值。
5.寄存器间接寻址:寄存器间接寻址方式是通过寄存器中的地址来确定要访问的内存地址。
指令中给出了要操作的寄存器,该寄存器中存储了内存地址。
例如,"LOAD A, (B)"表示从存储器中加载B寄存器中存储的内存地址处的内容,并将该内容放入寄存器A中。
6.相对寻址:相对寻址是通过指令中的相对偏移量来计算要访问的内存地址。
指令中给出了指令执行时相对于当前指令地址的偏移量。
例如,"JUMP 10"表示程序跳转到当前指令地址加上10的位置。
7.基址寻址:基址寻址方式是通过基址寄存器中存储的基地址加上一个偏移量来确定要访问的内存地址。
指令中给出了基址寄存器和偏移量。
例如,"LOAD A, (B+10)"表示从存储器中加载B寄存器中存储的基地址加上10的偏移量处的内容,并将该内容放入寄存器A中。
微机原理复习整理
![微机原理复习整理](https://img.taocdn.com/s3/m/46f59066650e52ea54189828.png)
微机原理复习整理第一章1.微型计算机指的是:把以大规模、超大规模集成电路为主要部件的微处理器作为核心,配以存储器、输入/输出接口电路及系统总线所制造出的计算机系统。
2.微型计算机按照其应用对象可分为:PC机单片微型计算机单板微型计算机。
3.微型计算机主要由运算器、控制器、存储器、输入设备和输出设备五个部分组成。
其中运算器和控制器组成中央处理器(CPU)是计算机中最重要的组成部分(它在微型计算机中也称为微处理器)。
4.假设计算机的字长为8位,分别计算45和-57的补码,用补码的加法计算45-57=?。
(考一道计算题10分)5.正数的反码和补码都与原码相同;负数的反码为其二进制数按位取反,补码为其反码加一。
第二章1.8086片内片外有:16位DB(数据总线),20位AB(地址总线),直接寻址空间1MB。
2.8086 CPU的内部结构指令执行单元EU总线接口单元BIU:(1)4个16位的段地址寄存器组(2)16位的指令指针寄存器IP(3)20位的物理地址加法器(4)6字节的指令缓冲队列(5)总线输入/输出控制电路3.●CF—进位标志位。
最高位有进位或借位产生CF=1。
●PF--奇偶标志位。
本次运算结果低8位二进制数中“1”的个数为偶数时,PF=1。
●AF—半进位标志位。
半进位标志位,低4位向高4位有进位或借位,AF=1。
●ZF—零标志位。
结果为零,ZF=1。
●SF—符号标志位。
最高位为1,SF=1。
●OF—溢出标志位。
带符号数运算,结果溢出,OF=1。
3个控制标志位用于控制CPU当前运行的一些特征,具体含义如下:●TF—单步标志位。
●IF—中断允许标志。
●DF—方向标志位。
4.寄存器组4个通用寄存器分别为:AX、BX、CX、DX。
4个专用功能的寄存器分别是SP、BP、SI、DI。
5.BIU内部各组成部分功能如下:(1)4个16位的段寄存器CS—代码段寄存器。
DS—数据段寄存器。
SS—堆栈段寄存器。
ES—辅助数据段寄存器。
微型计算机原理及应用第三版
![微型计算机原理及应用第三版](https://img.taocdn.com/s3/m/473b3542fbd6195f312b3169a45177232e60e47d.png)
下列简介旳几种寻址方式将针对存储器操作数而言旳。若操作数 在存储器中,一般位于数据段、堆栈段或附加段中,这时指令中 给出旳是操作数所在单元旳地址(EA)或产生EA旳计算方式。显 然执行此类指令时: ①CPU首先要计算出有效地址EA(EA是一种不带符号旳16位数) ②再由总线接口部件BIU计算出物理地址 ③再执行总线周期按该物理地址访问存储器并取出操作数送给 EU,由EU详细执行该指令。
3、直接寻址:操作数在存储器中旳16位有效地址由指令直接给出。
例如: MOV AX, [1070H] MOV AL, [1070H]
(*)要取数,假如不是数据段则要在前面加段跨越
前缀 例如:MOV BX, [2023H]
MOV BX, ES:[2023H]
(4C)基址变址寻址: 基址变址寻址是操作数旳有效地址EA由指令 指定旳一种基址寄存器(BX或BP)和一种变址寄 存器(SI或D1)内容之和。
例如: MOV AX, [BX][DI] MOV AX ,[BX+DI]
(*)基址变址寻址能够用来寻址二维表中旳数据 (*)要注意只能是基址和变址旳组合而不能用两个基址或两个变
4、间接寻址 (4A)寄存器间接寻址:操作数旳有效地址在指令中指定旳某个寄存
器中。
例如:MOV AX, [BX]
(*)可用旳寄存器只有四个BX,BP,SI,DI 错误:MOV AX,[DX]
(*)假如间址寄存器为BP则默以为是堆栈段,假如间址寄存器为 BX,SI,DI则默以为是数据段。 (*)在一条指令中,不能同步有两个存储器操作数 (防止指令过
1、立即寻址: 操作数直接包括在指令中,在操作码之后。, (*)不必执行总线周期访问存储器,故称之为立即数。 (*)立即数能够是一种8位或16位数。 例如: MOV AL, 80H
微型计算机原理助记符总结
![微型计算机原理助记符总结](https://img.taocdn.com/s3/m/cf4a898dd4d8d15abe234e50.png)
微型计算机原理第三章寻址方式与指令系统1.操作数的寻址方式【立即寻址】:MOV AX,3412H (不必执行总线周期,速度快)字节和字的传送:1.一般设想存储单元的地址由低到高依次排列2.每个存储单元存放一个字节,连续两个单元存放一个字3.字的存放:低8位低地址,高8位高地址【寄存器寻址】:MOV AX,CX(不请求总线周期)字节寄存器:AH,AL,BH,BL,CH,CL,DH,CL字寄存器:AX,BX,CX,DX,SI,DI,SP,BP【直接寻址】:MOV AX,[7834H] (7834H为偏移地址)若DS=2000H 逻辑地址:2000H:7834H 物理地址:20000H+7834H=27834H前缀:MOV AX,ES:[7834H]【寄存器间接寻址】:MOV AX,[BX]只能用CPU中的BX,BP,DI,SI来间接寻址.[BX,SI,DI] 默认段寄存器为DS [BP] 默认SS【寄存器相对寻址】:MOV AX,[BX+disp]disp:带符号的八位或十六位偏移量MOV AX,[BX+06H] = MOV AX,06H[BX]【基址加变址寻址】:MOV AX,[BX+SI] = MOV AX,[BX][SI]物理地址:[DS]*10H+[BX]+{ (SI) 或(DI) } 或SS BP 组合【相对的基址和变址寻址方式】:MOV AH,[BX+SI+2468H] =MOV AH,2468H[BX][SI]2.指令系统【通用数据传送类指令】:MOV PUSH POP XCHGMOV: MOV reg/mem,imm MOV reg/mem/seg,reg MOV reg/seg,mem MOV reg/mem,seg 非法指令:1.两个操作数类型不一致 2.无法确定是字节量还是字量 3.两个操作数都是存储器4.段寄存器有操作限制,代码段CS内容不能被随意改变PUSH POP: PUSH r16/m16/seg ; SP←SP-2 SS:[SP]←r16/m16/seg(先进后出)POP r16/m16/seg ; r16/m16/seg←SS:[SP] SP←SP+21.进出栈只对字操作2数据从栈顶压入和弹出时,都是低地址送低字节,高地址送高字节XCHG(交换指令):XCHG reg,reg/mem 注:不能在两个内存单元交换段寄存器中的CS,IP不能做操做数【累加器专用传送指令】:输入输出指令换码指令IN/OUT : 主要用于和外设接口交换数据IN AX/AL, port/DX OUT port/DX, AX/AL注:port 为直接端口地址寻址范围:0—255DX 为寄存器间接寻址,不加[ ], 寻址范围:0—65536当I/O 端口与内存统一编址时,不能用输入输出指令XLAT:换码指令、查表指令XLAT ; AL←DS:[BX+AL]功能:将BX和AL中的值相加,把得到的值作为偏移地址,然后将此地址所对应的单元内容送入AL中.注:1.XLAT指令应用之前,首先对应列出代码的对应表格2.BX指向表的首地址,AL的内容是表中某一项与表格首地址之间的偏移量【地址传送指令】:LEA LDS LESLEA r16,mem ;r16←mem的有效地址EALDS r16,mem ;ds,r16←mem 把源操作数有效地址所对应的内存单元的双字长高送DS,低送r16LES r16,mem ;es,r16←mem 同上注:源操作数必须是存储器寻址方式【标志传送指令】:LAHF ;标志寄存器低字节传送到AH SAHF ;把AH的内容送标志寄存器低八位(SF ZF AF PF CF)PUSHF ;标志寄存器内容(16位)压栈POPF ;弹出标志寄存器内容【算数运算类指令】:加减乘除BCD码调整其运算结果会影响状态标志【加法指令】:ADD ADC INC(不影响CF)INC/DEC mem/regADD reg,reg/mem/imm ADD mem,reg/imm (ADD不带进位ADC带进位)【减法指令】:SUB SBB DEC(不影响CF) NEG CMPSUB reg,reg/mem/imm SUB mem,reg/imm (SUB不带借位SBB带借位)CMP reg,reg/mem/imm CMP mem,reg/imm (比较两个操作数的大小,只影响标志位)【如A、B两数为无符号数,则通过以下标志判断ZF=1,A=B;CF=0,A﹥B;CF=1,A ﹤B如A、B两数为有符号数,不能通过CF标志判断两数的大、小关系,要使用SF、OF标志ZF=1 ,A=BSF、OF同号,则A﹥BSF、OF异号,则A﹤B】NEG reg/mem ; reg/mem←0-reg/mem(求补:将所有的数按位取反加一)【乘法指令】:MUL(无符号数)IMUL(有符号数)MUL/IMUL reg/mem乘法指令规定:8位X8位,积为16位被乘数必须在AL中,乘积在AX中16位X16位,积为32位被乘数必须在AX中,乘积在DX(高16位)、AX中对标志位的影响:只影响CF,OF .CF=OF=1 ,表示结果为16位或32位有效。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
立即寻址
立即数不能做目的操作数,只能作为源操作数。
(×)MOV 3,AL
源、目的操作数的字长必须一致。
(×)MOV AH, 3064H
MOV AL,07H MOV AX,1A2BH mov al ,255
立即数不能进入段寄存器中mov ds 20h
寄存器寻址
并非所有寄存器都可自由使用, CS 不能用MOV 指令改变。
(×)MOV CS,AX
源、目的操作数的字长必须一致。
(×)MOV AH, BX
两个操作数不能同时为段寄存器
字节寄存器只有AH AL BH BL CH CL DH DL
寻址速度很快(因为整个操作都在微处理器内部进行,不必执行访问内存的总线周期)。
Inc ax
寻址方式有效地址EA 默认的段寄存器
直接寻址(③)[DISP] DS
寄存器间接寻址
(①/②)[BX] DS
[BP] SS
[SI] DS
[DI] DS
基址寻址
(①+③) [BX+DISP] DS
[BP+DISP] S S
变址寻址
(②+③) [SI+DISP] DS
[DI+DISP] DS
基址加变址寻址
(①+②+③)[BX+SI+DISP(或无DISP)] DS [BX+DI+DISP(或无DISP)] DS
[BP+SI+DISP(或无DISP)] SS
[BP+DI+DISP(或无DISP)] SS
直接寻址
MOV AX,[2000H] INC ADDR
寄存、SP存放EA:(×)器间接寻址
不允许使用AX、CX、DX MOV AX, [CX]
源、目的操作数不能同时带方括号:(×)MOV [BX], [SI] 立即数和存储器寻址方式同时使用时应明示数据类型:(×)MOV [BX],20H
SRC 和DST 的字长一致MOV DL, [ BX ] ;
[BX]指示一个字节单元
MOV DX, [ BX ] ; [BX]指示一个字单元
段内间接转移寻址
JMP WORD PTR [SI]
段间直接寻址
JMP FAR L1 JMP 3000:2000
段间间接寻址JMP DWORD PTR L1
【例】分别只使用一条指令实现下述各功能。
(1)使AL的低4位清0,高4位不变。
(2)使DI的高10位清0,低6位不变。
(3)使BL的低4位置1,高4位不变。
(4)使SI的高2位置1,低14位不变。
(5)使CL中的D2、D3、D4、D5、D6位取反,D0、D1、D7位不变。
(6)使BP的高4位取反,低12位不变。
(1)AND AL,0F0H
(2)AND DI,003FH
(3)OR BL,0FH
(4)OR SI,0C000H
(5)XOR CL,7CH
(6)XOR BP,0F000H
例】指出下列指令中源操作数的寻址方式。
(1)MOV BL,0F9H
(2)ADD [BX],SI
(3)SUB CL,[4000H]
(4)CMP DX,[SI]
(5)AND A L,[BX+1]
(6)OR BP,[DI+2100H]
(7)XOR A X,[BP+SI]
(8)MOV CX,300
例】CPU分别执行下列各段程序后,写出各个执行结果的状态标志位OF、SF、ZF、AF、PF、CF的值。
(1)MOV AL,7AH
ADD AL,53HOF=1,SF=1,ZF=0,AF=0,PF=0,CF=0 2)MOV BL,0AFH
ADD BL,0EAHOF=0,SF=1,ZF=0,AF=1,PF=1,CF=1
3)MOV CL,0FFH
ADD CL,01HOF=0,SF=0,ZF=1,AF=1,PF=1,CF=1 4)MOV DL,49H
SUB DL,0CAH OF=0,SF=0,ZF=0,AF=1,PF=0,
CF=1
例】分别只使用一条指令实现下述各功能。
(1)使AL的低4位清0,高4位不变。
(2)使DI的高10位清0,低6位不变。
(3)使BL的低4位置1,高4位不变。
(4)使SI的高2位置1,低14位不变。
(5)使CL中的D2、D3、D4、D5、D6位取反,D0、D1、D7位不变。
(6)使BP的高4位取反,低12位不变。
(1)AND AL,0F0H
(2)AND DI,003FH
(3)OR BL,0FH
(4)OR SI,0C000H
(5)XOR CL,7CH 6)XOR BP,0F000H
(IN AL,DX
IN AX,port8
IN AX,DX
不影响标志位
端口地址为00~FFH时,可直接在指令中指定,端口地址为100H~FFFFH时,必须放在DX中
IN AL,400H只能是两位
只能传送到累加器(AL/AX)中
IN CL,DX
IN BX,30H。