8086 CPU寻址方式

合集下载

微机原理

微机原理

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]所指出的存储单元。

第3章 8086的指令系统—3.1寻址方式

第3章 8086的指令系统—3.1寻址方式
EA=[基址寄存器]+([变址寄存器] *比例因子)+位移量 BX,BP SI,DI 1 0,8,16
例:(BX)=2000H,(SI)=1000H,偏移量=0250H,
则EA= 2000H+1000H+0250H=3250H
寻址目的
确定本条指令的操作数据 在指令中 PA:存储器内的绝对地址(20位) 在存储器中 EA:某个段内的相对地址(16位) 在寄存器中 确定下一条指令的地址 根据指令长度计算 根据转移指令的目标地址
寄存器名表示其内容(操作数)
MOV AX, BX
MOV AL, BH
;AX←BX
;AL←BH
演示
第3章: 3.1.3 存储器寻址方式
操作数在主存储器中,用主存地址表示 程序设计时,8088采用逻辑地址表示主存地址
段地址在默认的或用段超越前缀指定的段寄存器中 指令中只需给出操作数的偏移地址(有效地址EA)
演示
;AX←DS:[SI+06H]
第3章:4. 基址加变址寻址方式
有效地址由基址寄存器(BX或BP)的内容加上 变址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI 段地址对应BX基址寄存器默认是DS,对应BP基 址寄存器默认是SS;可用段超越前缀改变
MOV AX, [BX+SI] MOV AX, [BX][SI]
*微型计算机汇编语言特点 *微型计算机指令系统概述 *寻址方式
指令及其格式
指令及指令集 计算机能够识别和执行的基本操作命令
指令的作用
告诉CPU干什么?What? 告诉CPU从哪儿取数据?Where? 告诉CPU下一条指令在哪儿?Where? 操作码 操作数或操作数地址 指令的格式

楼第4章指令系统习题解答

楼第4章指令系统习题解答

楼第4章指令系统习题解答习题解答:1.什么是寻址模式?8086/8088 CPU的寻址模式是什么?答:指令的寻址方式就是指获得操作数所在地址的方法。

8086/8088cpu指令的寻址方式可分为8种,为立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址、隐含寻址。

2.指示源操作数和目标操作数在以下指令中的寻址方式(1)movax,[si]源操作数:寄存器寻址目的操作数:寄存器间接寻址(2)movdi,100源操作数:寄存器寻址目的操作数:立即寻址(3)mov[bx],al源操作数:寄存器间接寻址目的操作数:寄存器寻址(4)mov[bx+si],cx源操作数:基址变址寻址目的操作数:寄存器寻址(5)adddx,106h[si]源操作数:寄存器寻址目的操作数:寄存器相对寻址3.阅读以下说明(1)sti对(2)call1000h错(3)divax,dl错(4)shlal,4错(5)popax对(6)inal,[30h]错(7)inccs错(8)out40h,al对4.地址是根据已知的物理条件计算的。

已知:SS=1000h,ES=2000h,DS=3000h,CS=4000H,BX=5000h,di=1200h,BP=2300h(1)(2)(3)(4)(5)5.将SP的初始值设置为2400h,ax=4000H,BX=3600h,然后在执行pushax指令后,SP=?,执行pushbx和popax后,SP=?答:则执行指令pushax后,sp=2400h-2=23feh,再执行pushbx和popaxMovax,[2300h]计算公式:DS×16+2300hmov[BX][di],ax计算公式:DS×16+BX+diaddax,es:[2100h]计算公式:es×16+2100hsubdx,[BP+6]计算公式:SS×16+BP+6movax,[di]计算公式:DS×16+di后sp=23feh。

8086中的七种寻址方式

8086中的七种寻址方式

8086中的七种寻址⽅式寻址⽅式8086/8088有七种基本的寻址⽅式:⽴即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。

其中,后五种寻址⽅式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址)属于存储器寻址,⽤于说明操作数或操作数地址所在存储单元的地址。

这五种⽅式也就是确定存放操作数的存储单元有效地址EA的⽅法,这⾥所说的有效地址就是在前⾯⼀节讲存储器分段中所说的段内偏移地址。

除了这些基本的寻址⽅式以外,还有固定寻址和I/O端⼝寻址等,但不会在本节中介绍到。

基本寻址⽅式下⾯重点说⼀下这七种基本寻址⽅式的特点:1. ⽴即寻址⽅式先解释⼀个概念,叫做⽴即数。

操作数包含在指令中,它作为指令的⼀部分,跟在操作码后存放在代码段。

这种操作数称为⽴即数。

⽴即寻址⽅式所提供的操作数紧跟在操作码后⾯,与操作码⼀起放在指令代码段中,不需要到其他地址单元中去取。

⽴即数可以是8位,也可以是16位。

这种寻址⽅式主要⽤于给寄存器或存储单元赋初值的场合。

⽴即寻址⽅式是这七种寻址⽅式中速度最快的寻址⽅式。

举例:MOV AX, 1234H ; 给AX寄存器赋值为1234H2. 寄存器寻址⽅式寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号。

对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI和SP等;对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。

例如:MOV SI, AXMOV AL, DH由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采⽤寄存器寻址⽅式的指令执⾏速度较快。

3. 直接寻址⽅式直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。

由于操作数⼀般存放在数据段,所以操作数的地址由DS加上指令中给出的16位偏移得到。

假如DS内容是5000H,地址为51234H字存储单元中的内容时6789H,那么在执⾏“MOV AX, [1234H]”后寄存器AX的内容是6789H。

第二章 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位偏移,得到要取指令 的物理地址。

微机原理试题及答案1

微机原理试题及答案1

微机原理试题库试题1一、填空题(24分)1、8086CPU寻址外设可以有两种方式,一种是寻址方式,另一种是寻址方式。

2、CPU在执行IN AL,DX指令时,M/引脚为电平,为电平。

3、微型计算机的组成4、CPU访问存储器进行读写操作时,通常在状态去检测READY ,一旦检测到READY无效,就在其后插入一个周期。

5、8086/8088系统中,存储器是分段的,每段最大长度是字节,段内偏移地址从到。

6、汇编语言源程序中的语句有三种类型,它们是语句,语句,语句。

7、一片8259A可管理级中断,经过级连最多可扩展为管理级中断。

8259A有个方式选择控制字和操作命令字。

8、CPU与外设之间的连接部件称为,它的基本功能是和。

9、数据的输入/输出指的是CPU与进行数据交换。

10、当8255A口工作在方式1输出时,A口输入信号联络线的名称是,输出信号联络线的名称是。

二、选择题(12分)1、设A=186,B=273Q,C=0BBH,它们之间的关系是。

A)A>B>C B)A<B<C C)A=B=C D)A<B=C2、8086CPU用ALE的下降沿将T1期间出现的信息锁存在外部地址锁存器中A) A0~A19 B) C) A和B D) D0~D153、下列四条指令中错误的是。

A)MOV AX,[SI] B)MOV AX,[BP+DI] C)MOV AX,[DI] D)MOV AX,[BP—DI]4、在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有。

A)SS,SP,BP B)SS,SP,BXC)DS,BX,BP D)DS,SP,BP5、.EXE文件产生在之后。

A)汇编 B)编辑 C)用软件转换 D)连接6、由2732芯片组成64KB的存储器,则需要块芯片和根片内地址线。

A)12 B)24 C)16 D)147、若8259A工作在优先级自动循环方式,则IRQ3的中断请求被响应并且服务完毕后,优先权最高的中断源是。

8086汇编各种寻址方式大全

8086汇编各种寻址方式大全

各种寻址方式1. 立即寻址:直接放在指令中的常数称为立即数,立即数只能是源操作数,立即数存放在指令操作码之后的存储单元中。

例:MOV AL,50HMOV DS, 1250H 错误2. 寄存器寻址:存放在寄存器中的数据为操作数,寄存器操作数可以是源操作数,也可以是目的操作数。

例:MOV AL,BLMOV CL, BX 错误以下寻址方式3~8,操作数都在存储器中。

存储器操作数具有类型属性,如字节(BYTE)、字(WORD)、双字(DWORD)等,反映了数据占用存储单元的字节数,指令书写中,约定用方括号内容表示存储器操作数的偏移地址;用类型名 PTR 偏移地址的形式说明指令中存储器操作数的类型,例:WORD PTR [1000H];用变量名DB/DW/DD数据序列的形式分别定义具有“变量名”的字节、字或双字存储器操作数,如BUF DB 10H,20H。

3. 存储器寻址(1)直接寻址:存储器操作数的16位偏移地址直接包含在指令的方括号中。

例:MOV AL,[1000H] 约定由DS提供段地址MOV AL,CS:[1000H] ;段超越,由CS提供段地址MOV AL,SS:[1000H] ;段超越,由SS提供段地址例:MOV AX, [2000H] 如果(DS)= 3000H,则AX的物理首地址为:3000*10+2000(2)寄存器间接寻址:操作数所在的存储单元的偏移地址放在指令给出的寄存器中。

可用于这种寻址方式的寄存器只能是SI、DI、BP和BX。

其中,SI、DI、BX约定的段寄存器是DS,而BP约定的段寄存器SS。

例:MOV AX,[SI] ;AX←DS:[SI]MOV [BX],AX ;DS:[BX]←AX例:MOV AX, [BX]如果(DS)= 2000H, (BX)= 1000H,则物理地址 = 20000H + 1000H = 21000H(3)寄存器相对寻址这种寻址方式通过基址寄存器BX、BP或变址寄存器SI、DI与一个位移量相加形成有效地址,计算物理地址的缺省段仍然是SI、DI和BX为DS,BP为SS。

8086 CPU的七种基本的寻址方式

8086 CPU的七种基本的寻址方式
MOV AX, [SI]
MOV [BP], CX
5. 寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)内容加上指令中给定的8位或16位位移量之和。即:
EA = (BX/BP/SI/DI) + (8/16位位移量)
例如:MOV AX, [DI+1223H]
MOV BX, [BP-4]
MOV ES:[BX+5], AL
注意:书写时基址或变址寄存器名一定要放在方括号中,而位移可以不写在方括号中。#43;3] 等价于 MOV AX, 3[SI]
6. 基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。
EA = (BX/BP) + (SI/DI)
在不使用换段前缀的情况下,若BP的内容作为有效地址的一部分,则以SS的值为段值;否则以DS的值为段值。有效地址超过FFFFH,则对其进行64K取模。例如:
8086 CPU的七种基本的寻址方式.txt逆风的方向,更适合飞翔。我不怕万人阻挡,只怕自己投降。你发怒一分钟,便失去60分钟的幸福。忙碌是一种幸福,让我们没时间体会痛苦;奔波是一种快乐,让我们真实地感受生活;疲惫是一种享受,让我们无暇空虚。生活就像"呼吸""呼"是为出一口气,"吸"是为争一口气。8086 CPU的七种基本的寻址方式
在不使用换段前缀的情况下,若SI/DI/BX的内容作为有效地址的一部分,则以DS的值为段值;若BP的内容作为有效地址的一部分,则以段寄存器SS的值为段值。
在指令中给定的8位或16位位移量以补码形式表示。在计算有效地址时,若位移量是8位,则将其有符号扩展为16位,当有效地址超过FFFFH,则对其进行64K取模。

汇编语言2-1寻址方式

汇编语言2-1寻址方式

EA =
+
பைடு நூலகம்
注意: 允许段超越。 注意:①允许段超越。 ②[BX+BP]或[SI+DI]是非法搭配 或 是非法搭配
例: MOV AX, [BX] [SI] MOV AX, [BX+SI] MOV AX, DS: [BP] [DI] 错误例: 错误例: × MOV AX, [BX] [BP] × MOV AX, [DI] [SI]
指令操作例:MOV AX,DATA[DI][BX] 指令操作例: , 操作例 若DS=8000H, BX=2000H, DI=1000H, DATA=200H 则指令执行后AH=[83201H], AL=[83200H] 则指令执行后
目的 源
指令举例:
MOV AX , BX 操作码 操作数 ADD AX,[SI+6] INC HLT [BX]
二、8086的操作数分类
立即数(常数) 1、立即数(常数)
取值范围如下表: 取值范围如下表 8位 无符号数 00H-FFH(0-255)
带符号数80H-7FH(-128~127)
16位 0000H-FFFFH(0-65535)
存储器寻址方式
1、 立即寻址 、
直接把参与操作的数据写在指令中,是指令的一部分, 直接把参与操作的数据写在指令中,是指令的一部分,该数 据称为立即数。操作数可以是各种数制下的数值(相当于8位 据称为立即数。操作数可以是各种数制下的数值(相当于 位 位二进制数),也可以是带单引号的字符。 或16位二进制数),也可以是带单引号的字符。 位二进制数),也可以是带单引号的字符 强调: 强调:立即寻址只能用于源操作数 例如: 2050H,执行后, 执行后, 例如: MOV AX,2050H ; AX , 执行后 MOV AL,05H , ;AH = 20H,AL = 50H , MOV AL,‘A’ , 观察指令: 观察指令: MOV 05H,AL MOV BL,324D , , MOV CH,2050H MOV DL,‘25’ , , 注意: 立即数永远不能作目的操作数。 注意:1. 立即数永远不能作目的操作数。 2. 源操作数和目的操作数要互相匹配。 源操作数和目的操作数要互相匹配。

8086微处理器存取原则

8086微处理器存取原则

8086微处理器存取原则
8086微处理器是一种16位微处理器,其存取原则包括以下几个方面:
1. 存储器的字节寻址能力,8086微处理器具有16位的数据总线和20位的地址总线,因此可以寻址的内存空间为2的20次方,即1MB。

它可以直接访问1MB的内存空间,这为当时来说是非常大的一个数字。

2. 存储器的字节和字寻址,8086微处理器可以以字节(8位)或字(16位)为单位进行存取。

它可以以字节为单位或者以字为单位进行寻址,这种灵活的寻址方式为程序员编写程序提供了便利。

3. 存储器的奇偶地址存取,8086微处理器的存储器奇偶地址存取是指它可以以字为单位存取数据,但是在存取字时,它要求字的起始地址必须是偶数。

如果字的起始地址为奇数,8086会进行两次内存访问,将两个奇地址的字节合并成一个字。

这种存取方式称为奇偶地址存取。

4. 存储器的段地址和偏移地址,8086微处理器采用段地址和
偏移地址的方式来访问内存。

它通过将一个16位的段地址左移4位再加上一个16位的偏移地址来得到20位的物理地址。

这种寻址方式可以方便地访问1MB的内存空间。

总的来说,8086微处理器的存取原则包括了对存储器的大小、存取单位、奇偶地址存取和段地址偏移地址寻址方式的规定,这些原则为程序员编写程序提供了灵活和方便的条件。

第三章 8086的寻址方式和指令系统

第三章 8086的寻址方式和指令系统
习题 CH3 寻址方式和指令系统
计算机的指令通常包含 操作码 和 操作数 两部分。
设SP为0100H,SS为1000H,则执行PUSH AX 后,
00FE H,SS= 1000 H。 8086系统中,栈底在堆栈的 最高地址 (最高地址端、 最低地址端)。
如果VAL为数据段中0056H单元的符号名,其中存放
16
习题 CH3 寻址方式和指令系统
(6)MOV [SI],[BX] 源、目的操作数不能同时为存储单元 (7)MOV DS,0200H 立即数不能直接送给段寄存器 (8)IN BL,05H BL不能作为IN指令的目的操作数 (9)MOV AX,IP IP不能作为操作数 (10)MOV SI,[DX] DX不能进行寄存器间接寻址 (11)PUSH AL PUSH指令以字为操作单位
用单条指令或程序片段,实现下述功能
(1)将AX高8位取反,低四位置1,其余位不变。
XOR AX, 0FF00H
OR AX, 0FH (2)将AL的高四位与低四位互换。 MOV CL, 4 ROL AL, CL
(3)将BX、AX内容互换。
XCHG AX, BX
12
习题 CH3 寻址方式和指令系统
[BP+SI+4]源操作数的有效地址为
地址为 数的有效地址为
,物理 0214H 24514H 。指令MOV AX,[DI+100H]源操作
0306H,物理地址
为 24306H 。 设AX=2000H,BX=2002H,则在执行了指令CMP AX,
BX后,标志位CF为

1 , AX=
。 2000H
基址变址寻址
(5)MOV AX,10[BX][DI] 相对基址变址寻址

8086cpu的结构和功能

8086cpu的结构和功能

8086cpu的结构和功能8086CPU是由英特尔公司开发的一款经典的16位微处理器。

它是在20世纪80年代初面世的,也是当时最新一代的微处理器。

8086CPU具有复杂的结构和强大的功能,为计算机技术的发展做出了重要贡献。

本文将从多个方面介绍8086CPU的结构和功能。

首先,我们来了解8086CPU的整体结构。

8086CPU包括两个主要部件:执行部件和总线控制部件。

执行部件由数据总线单元(DBU)、算术逻辑单元(ALU)和寄存器组成,负责实际进行数据的处理和运算。

总线控制部件包括指令队列、指令译码器和时序控制器,负责控制数据和指令的传输以及处理器的时序控制。

这种分离的结构使得8086CPU 具有高效的指令执行能力。

其次,我们来探讨8086CPU的功能特点。

8086CPU具有许多强大的功能,包括多种数据类型支持、分段式寻址、以及可扩展的指令集等。

首先是多种数据类型支持。

8086CPU支持多种数据类型,包括字节、字和双字等。

这使得它能够处理各种不同类型的数据,适应了不同应用场景的需求。

其次是分段式寻址。

8086CPU采用分段式寻址的方式,将内存划分为多个段,每个段具有独立的段地址。

这种寻址方式可以灵活地管理内存,提高内存的利用率,并且方便编程。

最后是可扩展的指令集。

8086CPU的指令集非常丰富,包括各种数据处理、逻辑控制、输入输出、以及字符串操作等指令。

同时,8086CPU还支持通过软件扩展指令集,满足用户的个性化需求。

总之,8086CPU作为一款经典的微处理器,具有复杂的结构和强大的功能。

它为计算机技术的发展做出了重要贡献,为后续的微处理器设计奠定了基础。

通过多种数据类型支持、分段式寻址和可扩展的指令集等特点,8086CPU实现了高效的数据处理和灵活的内存管理,为用户的应用提供了广泛的功能支持。

参考文献:1. Patterson, D.A., & Hennessy, J.L. (2017). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann.2. Kip Irvine. (2016). Assembly Language for x86 Processors. Pearson.。

8086-8088 CPU的寻址方式

8086-8088 CPU的寻址方式
3. 段间直接转移寻址 指令直接提供了转移目标段地址和偏移地址 例:JMP FAR PTR NEXT NEXT是符号地址,它所在的段地址送CS寄存 器,所在的偏移地址送IP寄存器 4.段间间接转移寻址 用存储器中二个连续字内容取代IP和CS寄存器 中的原始内容以达到段间转移的目的 例3.12:JMP DWORD PTR [BP][SI]
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]

第三章 8086的寻址方式

第三章 8086的寻址方式
7
8086/8088指令概述
操作数的一般形式: 3、存储器操作数:这类操作数是指定存储单元 的内容或该单元的地址.
例1:MOV DS:[1000H], AL 其意义是将AL的内容送存储器数据段中偏移地址为 1000H的单元中去。
例2: 若指令改写为MOV AL,DS: [1000H]
指令意义为将数据段中偏移地址为 1000H 单元中的 内容送AL寄存器。前者指的是存储单元的地址,后者指 的是存储单元的内容
22
3.1 寻址方式
直接寻址: 符号地址:
8086/8088指令寻址方式
例3 :AREA1 EQU 0867H ; 等值伪指令EQU给常数0867H定义 一个符号AREA1 MOV AX,AREA1 ;AX=0867H 例4:AREA1 DW 0867H ;DW伪指令用来定义变量,
变量用来表示存储器中的数据。变量名AREA1表示内存中 一个数据区的名字,也就是符号地址,该地址单元存放一个字 数据0867H。 MOV AX,AREA1 ;
4、隐含操作数:这类操作数被操作助记符隐含着。 如,对压缩BCD加法结果进行调整的DAA,其操 作数就是隐含操作数AL。
5 、I/O端口操作数:可以作源操作数或目的操作数。 (I/O端口地址,可以直接或寄存器间接给出)
如: IN AL, 44H
OUT 量和常量三个概念:
例如:MOV AX,BX
3
8086/8088指令概述
例如:MOV AX,BX
用 MOV表示进行数据传送的操作码,用 AX、 BX表示操作数, 显然这样的表示方式更清晰,更便于记忆和使用。 用符号、助记符书写的指令称为符号指令。用符号指令书写程 序的规范称为汇编语言,对应的程序称为汇编语言源程序。

微型计算机原理与接口技术课件-第三章指令系统和寻址方式

微型计算机原理与接口技术课件-第三章指令系统和寻址方式
指出的存储区进行直接寻址,应在指令中指定段
超越前缀。例如,数据若放在附加段中,则应在
有效地址前加“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 (该指令也可

8086指令操作数的寻址方式实验总结

8086指令操作数的寻址方式实验总结

8086指令操作数的寻址方式实验总结在计算机体系结构的学习中,8086指令操作数的寻址方式是一个非常重要的概念。

通过对这一概念的深入了解和实验操作,我们可以更好地理解计算机程序的执行过程,深化对计算机底层原理的理解。

在本文中,我将结合理论知识和实验结果,对8086指令操作数的寻址方式进行全面评估和总结。

1. 立即寻址立即寻址是一种直接将操作数的值嵌入指令中的寻址方式。

在8086指令集中,我们可以使用MOV指令将一个立即数传送到目的操作数中。

MOV AX, 1234h指令将立即数1234h传送到寄存器AX中。

通过实验操作,我发现立即寻址方式适用于需要直接传送常数值的情况,能够提高程序执行的效率。

2. 寄存器寻址寄存器寻址是一种通过寄存器来寻址操作数的方式。

8086微处理器具有通用寄存器AX、BX、CX、DX等,可以直接操作这些寄存器中的数据。

MOV AX, BX指令将寄存器BX中的数据传送到寄存器AX中。

在实验过程中,我发现寄存器寻址方式是一种高效的操作数寻址方式,能够提高程序的执行速度。

3. 直接寻址直接寻址是一种通过内存位置区域来寻址操作数的方式。

在8086指令集中,我们可以使用MOV指令将内存中的数据传送到寄存器中,或将寄存器中的数据传送到内存中。

MOV AX, [1234h]指令将存储在内存位置区域1234h处的数据传送到寄存器AX中。

实验结果表明,直接寻址方式可以灵活地对内存中的数据进行操作,适用于大规模数据的传送和处理。

4. 寄存器间接寻址寄存器间接寻址是一种通过寄存器中存储的位置区域来寻址操作数的方式。

在8086指令集中,我们可以使用指令将寄存器中存储的内存位置区域作为操作数进行操作。

MOV BX, [SI]指令将寄存器SI中存储的内存位置区域处的数据传送到寄存器BX中。

在实验中,我发现寄存器间接寻址方式适用于需要对内存中多个数据进行操作的情况,能够提高程序的效率和灵活性。

5. 立即偏移寻址立即偏移寻址是一种通过基址寄存器和偏移量来寻址操作数的方式。

第七讲 8086寻址方式

第七讲 8086寻址方式
第4章 8086指令系统
教学要求: 通过学习寻址方式,熟悉微机 指令的结构与形式,理解80806的各 种寻 址方式的含义,熟悉作用、把握 注 意点,为进一步学习指令系统打好 基础。
4.3
4.3.1操作数(据)寻址方式 操作数( 操作数
分 两 类
4.3.2 程序转移地址的寻址方式
4.3.1 操作数(据)寻址
X u n 寻
EA
4.3.2 程序转移地址的寻址方式
段内转移( 段内转移(近转移 ) 一、转移方式 偏移量 属性NEAR CS值不变 段内近转移 属性 值不变
-32768---+32767
短转移
-128---+127
段间转移( 段间转移(远转移 ) 属性FAR CS值变化 属性 值变化 直接转移 段内直接转移 段内间接转移
二、寻址方式
间接转移
Hale Waihona Puke 段间直接转移 段间间接转移
小结: 1、熟悉微机指令的结构与形式。 2、结合寄存器的作用与存储器的 基础知识,理解各种寻址方式的含义, 熟悉作用、把握注意点,为进一步学 习 指令系 统打好基础。 作业:1、预习数据传送指令 2、P141 4-2

8086寄存器和7种寻址方式

8086寄存器和7种寻址方式

8086寄存器和7种寻址⽅式1. 8086处理器有以下寄存器:类别位数名称通⽤16AX, BX, CX, DX8AH,AL,BH,BL,CH,CL,DH,DL指针16SP(stack pointer,堆栈指针),BP(base pointer,基址指针)索引(变址)16SI(source index,源索引),DI(destination,⽬的索引)段16CS(code segment,代码段),DS(data segment,数据段),SS(stack segment,堆栈段),ES(extra segment,附加段)指令16IP(instruction pointer,指令指针/指令计数器)标志16FR(flag register,标志寄存器)其中:1). 段寄存器CS,DS,SS,ES分别保存端代码段,数据段,堆栈段,辅助数据段的起始地址,段寄存器只能由其他寄存器载⼊值,不能由主存直接载⼊.2). 基址寄存器BX,SP,BP⽤于保存相对段⾸地址的偏移地址,其中BX的默认段寄存器是DS,⽽SP,BP的默认段寄存器是SS.3). 索引寄存器(⼜叫变址寄存器)SI,DI,既可⽤于存放存储单元在段内的偏移量,⼜可⽤于存放在相对于段内偏移量的偏移量(详见下⽂寻址⽅式).4). 操作数相对于段⾸的偏移地址⼜称有效地址.(参考⾃《x86 PC 汇编语⾔,设计和接⼝》)1). ⽴即数寻址⽅式操作数作为指令的⼀部分,紧跟在操作码之后,该寻址⽅式执⾏得很快.将信息装载到除了段寄存器和标志寄存器以外的寄存器:MOV AX,2550H ;将2550H装⼊AXMOV CX,625;将⼗进制数625装⼊CXMOV BL,40H ;将40H装⼊BLView Code要将信息移到段寄存器,必须现将数据装载到通⽤寄存器,再移到段寄存器:MOV AX,2550HMOV DS,AX ;正确MOV DS,2550H ;错误View Code2). 寄存器寻址⽅式操作数在寄存器中,指令指定寄存器号.16位操作数的寄存器可以是 AX,BX,CX,DX,SI,DI,SP,BP等;8位操作数的寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH等.寄存器寻址⽅式和⽴即数寻址⽅式不涉及内存访问,因⽽可以取得较⾼的运算速度.如:MOV BX,DX ;将DX的内容复制到BXMOV ES,AX ;将AX中的内容复制到ESADD AL,BH ;将BH中的内容加到ALView Code3). 直接寻址⽅式操作数在内存,但操作数的有效地址作为指令的⼀部分,紧跟在操作码之后.默认段寄存器为DS().如:MOV DL,[2400] ;将DS:2400H的内容移到DLMOV [3518],AL ;将AL的内容移到DS:3518HView Code4). 寄存器间接寻址⽅式操作数在内存,但操作数的有效地址由SI,DI,BX,BP指定,其中SI,DI,BX默认的段寄存器是DS,BP默认的段是SS.如:MOV CL,[SI] ;将DS:SI中的内容移到CLMOV [DI],AH ;将AH的内容移到DS:DIView Code5).寄存器相对寻址⽅式操作数的有效地址是⼀个基址或变址寄存器的内容和指令中指定的8位或16位位移量(displacement)之和.如:MOV CX,[BX]+10;[BX]+10也可以写作[BX+10]或10[BX]MOV AL,[BP]+5MOV DX.[SI]+5View Code6). 基址变址寻址⽅式操作数的有效地址是⼀个基址寄存器和⼀个变址寄存器的内容之和,默认段寄存器为基址寄存器的默认段寄存器.如:MOV CL,[BX][DI] ;将DS:BX+DI的内容移到CL7). 相对基址变址寻址⽅式(Relative based indexed addressing)操作数的有效地址是⼀个基址寄存器和⼀个变址寄存器的内容和8位或16位位移量之和,这种寻址⽅式为像数组元素遍历等堆栈处理提供了⽅便.如:MOV CL,[BX][DI]+8;将DS:BX+DI+8的内容移到CL,[BX][DI]+8也可以写作[BX+DI+8]MOV CH,[BX][SI]+20View Code。

8086寻址方式及举例

8086寻址方式及举例

8086寻址方式及举例8086寻址方式指的是在Intel 8086处理器中进行内存访问的方式。

8086寻址方式主要有以下几种:1. 直接寻址(Direct addressing):给出地址直接访问内存中的数据。

2. 寄存器寻址(Register addressing):使用寄存器中存放的地址进行内存访问。

3. 寄存器间接寻址(Register indirect addressing):使用寄存器中存放的地址作为内存地址的间接寻址方式。

4. 寄存器相对寻址(Register relative addressing):使用一个寄存器中存放的地址作为起始点,加上一个常数作为偏移量。

5. 基址加变址寻址(Base + index addressing):使用基址寄存器和变址寄存器相加得到内存地址。

6. 相对基址加变址寻址(Base + index + offset addressing):使用基址寄存器、变址寄存器和一个常数作为偏移量相加得到内存地址。

举例:1. 直接寻址: MOV AX, [1000H] 表示将内存地址为1000H的数据复制到AX寄存器中。

2. 寄存器寻址: MOV AX, BX 表示将BX寄存器中的数据复制到AX寄存器中。

3. 寄存器间接寻址: MOV AX, [BX] 表示将内存地址为BX寄存器中的数据所指向的内存单元中的数据复制到AX寄存器中。

4. 寄存器相对寻址: MOV AX, [BX+2] 表示将内存地址为BX寄存器中的数据加上2所得到的地址中的数据复制到AX寄存器中。

5. 基址加变址寻址: MOV AX, [BX+SI] 表示将基址寄存器BX和变址寄存器SI中的数据相加得到的地址中的数据复制到AX寄存器中。

6. 相对基址加变址寻址: MOV AX, [BX+SI+2] 表示将基址寄存器BX和变址寄存器SI中的数据相加得到的地址再加上2所得到的地址中的数据复制到AX寄存器中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8086 CPU的七种基本的寻址方式
分别是:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址
1. 立即寻址:操作数包含在指令中,是指令的一部分。

此时的操作数称为立即数
MOV AX, 1234H
2. 寄存器寻址:操作数在CPU寄存器中,指令中指定寄存器编号
MOV SI, AX
MOV AL, AH
3. 直接寻址:操作数在存储器中,指令直接包含操作数的有效地址。

此时操作数一般存放在数据段DS中,采用换段前缀可以使用其它段寄存器。

MOV AX, [1234H]
4. 寄存器间接寻址:操作数在存储器中,操作数有效地址在SI、DI、BX、BP之一种。

在不使用换段前缀的情况下,若有效地址在SI/DI/BX中,则以DS的值为段值;若有效地址在BP中,则以段寄存器SS的值为段值。

MOV AX, [SI]
MOV [BP], CX
5. 寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)内容加上指令中给定的8位或16位位移量之和。

即:EA = (BX/BP/SI/DI) + (8/16位位移量)
在不使用换段前缀的情况下,若SI/DI/BX的内容作为有效地址的一部分,则以DS的值为段值;若BP的内容作为有效地址的一部分,则以段寄存器SS的值为段值。

在指令中给定的8位或16位位移量以补码形式表示。

在计算有效地址时,若位移量是8位,则将其有符号扩展为16位,当有效地址超过FFFFH,则对其进行64K取模。

例如:MOV AX, [DI+1223H]
MOV BX, [BP-4]
MOV ES:[BX+5], AL
注意:书写时基址或变址寄存器名一定要放在方括号中,而位移可以不写在方括号中。

下面两条指令是等价的:
MOV AX, [SI+3] 等价于MOV AX, 3[SI]
6. 基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。

EA = (BX/BP) + (SI/DI)
在不使用换段前缀的情况下,若BP的内容作为有效地址的一部分,则以SS的值为段值;否则以DS的值为段值。

有效地址超过FFFFH,则对其进行64K取模。

例如:MOV AX, [BX+DI] 等价形式MOV AX, [DI][BX]
MOV AX, ES:[BX+SI]
MOV DS:[BP+SI], AL
7. 相对基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容以及指令中给定的8位或16位位移量相加得到。

EA = (BX/BP) + (SI/DI) + (8/16位位移量)
在不使用换段前缀的情况下,若BP的内容作为有效地址的一部分,则以SS的值为段值;否则以DS的值为段值。

有效地址超过FFFFH,则对其进行64K取模。

例如:MOV AX, [BX+DI+1234H]
MOV AX, 1234H[BX+DI]
MOV AX, 1234H[BX][DI]
MOV AX, 1234H[DI][BX]。

相关文档
最新文档