第三章操作数的寻址方式(课堂PPT)

合集下载

微机原理课件第三章8086寻址方式和指令系统

微机原理课件第三章8086寻址方式和指令系统
2取 单.如操元果作的指数 地令寄, 址中存钥 。用器匙对寄就于间存或相寄接器=当存D寻B于器SP址×进存间1方行储接6+式间D接I的寻E址A计,寄则算存默器 认操作
数寻在址堆方栈式段来中说,,操就作相数当的于段钥地匙址在段寄存器SS中,操 作放数在的寄物存理器地中址,=即SS寄×存1器6+给BP出。 了要访问的存储单元地址。
DS 3000H ×16

SI 2000H
操作码
+ COUNT 4000H
00
代码段
40
寄存器3相60对00H寻址方式也允许使┋用段超越前缀,
如MOV BX,ES:COUNT[DI]则段地址为ES,物
理地址=ES×16+DI+COUNT。
BH
BL

BX 56
78
36000H
78
56
数据段

指令MOV BX,COUNT[SI]的执行过程
{{ }} 组合起来([B只X能]+相[S加I)]+,D同8或时D还1可6 以加上一个8位或
((1SE86IE8和位A种A种=D的=)I)位也移不[[[[[[[BBB量能BSDBXPPPIIX]],]同]]]]+++但时++++[[[DDDDSDB出8888IIIX现或 或或 或]]]和+++在DDBDDD11P方1188866不66或 或 或括能DDD号111同寄中666时;存出器现相 变在相对 址方对基 寻括寻号址 址址中,
{ 设((D3E86A种S0==0M)300HO0)V[[[[0HBSBD=XIPIB,5]]]]X6或S7,+I8=18H[2S6位0I位0+位0C位H移O,移U量位N量T移] 量COU默 默N认 认T=DS4SS0段 段00H,

微机原理第三章8086的寻址方式和指令系统PPT课件

微机原理第三章8086的寻址方式和指令系统PPT课件

04 寻址方式和指令系统的关 系
寻址方式对指令执行的影响
01
寻址方式决定了指令操作数的来源和访问方式,从而
影响指令的执行效率和正确性。
02
不同的寻址方式可能导致指令执行时间不同,因为它
们可能需要不同的计算步骤和内存访问次数。
03
寻址方式的正确选择可以简化指令的执行过程,提高
指令的执行效率。
指令系统对寻址方式的支持
在个人电脑(PC)领域,IBM PC/AT是基于8086的扩展版 80286开发的,奠定了现代PC 的基础。
8086也被广泛应用于工业控制、 自动化设备、仪器仪表等领域。
现代计算机系统中8086的继承和发展
尽管随着技术的进步,更先进的微处理器已经取代了8086在主流应用中的地位, 但8086的设计理念和架构仍然在许多嵌入式系统、低功耗应用中得到继承和发展 。
CALL指令用于调用子程序, 并将返回地址压入堆栈。
处理器控制类指令
处理器控制类指令用于控制 处理器的状态和行为。
包括HLT、INT、IRET等指令。
02
01
03
HLT指令用于暂停处理器执 行,等待中断或系统调用。
INT指令用于触发软件中断, 执行中断处理程序。
04
05
IRET指令用于从中断返回, 恢复程序的执行。
算术运算类指令用于执行 加、减、乘、除等算术运 算。
ADD指令将两个操作数 相加并将结果存储在目标 操作数中。
ABCD
包括ADD、SUB、MUL、 DIV等指令。
SUB指令从第一个操作数中 减去第二个操作数,并将结 果存储在目标操作数中。
逻辑运算类指令
逻辑运算类指令用于执行逻 辑与、或、非等逻辑运算。

第3章操作数的寻址方式

第3章操作数的寻址方式
第3章操作数的寻址方式
本章主要内容
▪ 预备知识 ▪ 1.什么是寻址方式? ▪ 2.有那些寻址方式?
1. 立即寻址方式 2. 寄存器寻址方式 3. 直接寻址方式 4. 寄存器间接寻址方式 5. 寄存器相对寻址方式 6. 基址变址寻址方式 7. 相对基址变址寻址
▪ 3.本章小结 2
2022/1/4
MOV AX,[SI] ;AX←DS:[SI] ▪ 该指令中有效地址存放于SI寄存器中,而操作数则
存Hale Waihona Puke 在数据段主存单元中。假设SI内容设置为 2000H,则该指令等同于MOV AX, [2000H]。
28
2.4 寄存器间接寻址方式
29
思考题
▪ 指出源操作数的寻址方式,判断对错,并 说明原因:
1. mov ax,[sp] mov ax,sp
▪ 书写汇编指令时要将16位有效地址加上中 括号。
23
2.3 直接寻址方式
▪ 例:将数据段中偏移地址2000H的一个16 位数据传送给AX MOV AX,[2000H] ;AX←DS:[2000H],指令代码:A10020
▪ 该指令中给定了有效地址2000H,它还不是 存储器的物理地址。默认情况下,有效地 址要与数据段寄存器DS一起构成操作数所 在存储单元的物理地址。
(ax):寄存器ax中的内容 (20000h):物理地址为20000h的内存单元
的内容 ((ds)×16+(bx)):
ds寄存器中的内容作为段地址×16加上bx寄存器 中的内容作为的偏移地址所指向的内存单元的内容
(X)的应用
▪ ax的内容为1100h (ax)=1100h
▪ 2000:0100内存单元的内容为0010h (20100h)=0010h

第3章指令系统和寻址方式3PPT课件

第3章指令系统和寻址方式3PPT课件
JCXZ OPR:CX寄存器的值为0则转移
说明: 1)条件转移的范围为-128至+127之间,采用
相对转移方式,通过在IP上加一个地址差的方法 实现.
2)通常,在条件转移指令之前,总有用于条件 判别的指令.
3)比较无符号数和有符号数之间的大小所用 的转移指令不同,注意区分。
例:在存储器中有一个首址为ARRAY的N字数组,测试其中 正、负、0的个数存放在DI、SI和AX中。
比较无符号数 JB(JNAE,JC) OPR:低于(<) JNB(JAE,JNC) OPR:不低于( ≧ ) JBE(JNA) OPR:低于或等于(≦) JNBE(JA) OPR:不低于或等于(>)
微机原理2011
比较有符号数 JL(JNGE)OPR:小于(<) JLE(JNG)OPR:不大于(≦) JNL(JGE)OPR:不小于( ≧ ) JNLE(JG)OPR:大于(>)
微机原理2011
(217E0H)=0400H,(217E2H)=9000H,试确定下列转移指
令的转移地址。
1)JMP 2300H
2)JMP
WORD PTR [BX]
3)JMP
DWORD PRT [BX+DATA]
微机原理2011
➢ 条件转移指令 根据执行上一指令后标志寄存器的状态而决定
是否转移 格式: Jcc 标号
根据单个标志位的条件转移指令(见教材P71)
JZ
JP
JNZ
JNP
JC
JS
JNC
JNS
JO
JNO
微机原理2011
例:试分析下列程序段:
ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP SHORT L5 如果AX和BX的内容给定如下: AX BX 1)147B 80DC OF=0,CF=0 ,转L1 2)B568 54B7 OF=0,CF=1 ,转L1

05第3章 8086寻址方式和指令系统1PPT课件

05第3章 8086寻址方式和指令系统1PPT课件

2020/10/30
11
指令中符号的判别(1)
• 直接寻址在汇编语言书写形式上类似立即数寻址,必 须从整个程序上下文分析中才能得出正确结论。
例如:
DSEG SEGMENT
DATANDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START: MOV AX, DSEG
AX AH AL
代码段
OP 64 30
操作码
操作数 (立即数)
2020/10/30
6
3.1.2 寄存器寻址方式
指令 寄存器号
寄存器 操作数
寄存器寻址方式示意图
• 操作数在寄存器中,指令指定寄存器号。对于16位操作数, 寄存器可以是AX、BX、CX、DX、SI、DI、SP和BP等; 对于8位操作数,寄存器可以是AH、AL、BH、BL、CH、 CL、DH和DL等。这种寻址方式操作数的示意如上图所示。
2020/10/30
3
3.1 8086的寻址方式
• 立即数寻址方式 • 寄存器寻址方式 • 直接寻址方式 • 寄存器间接寻址方式 • 寄存器相对寻址方式 • 基址变址寻址方式 • 相对基址变址寻址方式 • 其他
2020/10/30
4
3.1.1 立即数寻址方式
• 操作数直接存放在指令中,紧跟在操作码之后,它作 为指令的数字段存放在指令代码中,这种操作数称为 立即数。立即数可以是8位的或16位的。如果是16位立 即数,则低位字节数存放在低地址单元中,高位字节 数存放在高地址单元中。机器码存放形式如下所示:
微型计算机原理与接口技术 第5讲
电子邮件:gqz@
1
第3章 8086寻址方式和指令系统
• 本章介绍以下内容

第三章操作数的寻址方式

第三章操作数的寻址方式
(4)基址变址寻址: lea bx,num mov si,4 mov dx,[bx][si]
P33 1、2、3、5、6(单数)、
图示
1、直接寻址
例:指令:mov bx,es:[1234h],(es)=1000h, (11234h)=1234h。问该指令执行后,bx的值是什 么?
PA=(es)×16+1234h=11234h (bx)=1234h
1、直接寻址
要点:
地址也常用内存变量名来表示,书写格式:v_1或 [v_1]。
综合
例4:如图所示,取第三个字数 据→(dx) 解:取第3个数据,其偏移量: num+3 (1)直接寻址: mov dx,num+4 ;num为字变量 (2)寄存器间接寻址: lea bx,num+4 mov dx,[bx]
综合
(3)寄存器相对寻址: mov si,4 mov dx,num[si]
一、概述 二、立即数寻址(imm) 三、寄存器寻址(reg) 四、存储器寻址(mem)
寄存器寻址(reg)
指令所要的操作数已存储在某寄存器中,或把目标 操作数存入寄存器。把在指令中指出所使用寄存器 (寄存器符号)的寻址方式称为寄存器寻址方式。
执行过程
指令中可以引用的寄存器及其符号如下: 8位寄存器有:ah、al、bh、bl、ch、cl、 dh和dl。 16位寄存器有:ax、bx、cx、dx、si、di、 sp、bp、ip和段寄存器。
寄存器寻址(reg)
例:
add varw,ax add varb,bh
;其中varw,varb是字、字节内存变量。
add bh,78h
add ax,1234h
mov ax,bx
mov bh,al

微型计算机基本原理与接口技术(第二版)教学课件ppt作者陈红卫主编第三章

微型计算机基本原理与接口技术(第二版)教学课件ppt作者陈红卫主编第三章
AH←AH+调整所产生的进位值。 对标志位的影响:AF、CF 例: MOV AX,0435H
MOV BL,39H ADD AL,BL AAA
微机原理
② AAS 减法的ASCII码调整指令 指令格式: AAS 执行操作:AL←把减法结果AL的内容调整到 非压缩的BCD码格式 AH←AH - 调整所产生的借位值 标志位的影响:AF、CF
微机原理
3.1.6 转移类指令的寻址方式 1.段内相对转移寻址 有效地址EA为当前IP寄存器内容与指令中指定 的8位或16位有符号数之和 例:JZ DISP 其中DISP是符号地址 2.段内间接转移寻址 有效地址EA为寄存器或存储器单元的内容,这种 寻址方式不能用于条件转移指令。 例:JMP CX
微机原理
3.1.3 寄存器寻址方式 寄存器寻址:操作数存放在CPU内部的寄存器中 例 :MOV AX,DX ; AX←DX 3.1.4 寄存器间接寻址 寄存器间接寻址:有效地址包含在基址寄存器 BX、BP或变址寄存器SI、DI中直接寻址 例 MOV AX,[BX]
MOV AX,[BP] 3.1.5 寄存器相对寻址 寄存器相对寻址方式:有效地址在SI、DI、BX 或BP之一,加上指令中8位或16位相对地址 例 MOV AL,ADDR[SI]
3.2 8086/8088 CPU的指令系统 微机原理
3.2.2 算术运算指令
1.加法指令 ⑴ ADD 不带进位加法指令 指令格式:ADD DST,SRC 执行操作:(DST)←(SRC)+(DST)。 对标志位的影响:OF、SF、ZF、AF、PF、CF。
存储器 通用寄存器 立即数
存储器 通用寄存器 立即数
OR AL,20H 执行上述指令后AL=?
⑶逻辑非NOT 指令 指令格式:NOT OPR 执行操作: (OPR)←(OPR) 影响的标志位:无

第三讲2 操作数的寻址方式

第三讲2 操作数的寻址方式
假设数据段的段地址DS=1500H,(15200H)字单元的值是876AH,问执行指 令后,相关寄存器及存储单元的值是什么? 答: EA=200H PA=(DS)*16+EA=15000H+200H=15200H MOV AX, 目的操作数 寄存器寻址 [200H] 源操作数 直接寻址
AH
已知 DS=1500H
36000H
78 56
56 78 AX
5.变址寻址
操作数的EA SI/DI变址寄存器的内容 变址寄存器的内容+ 操作数的EA = SI/DI变址寄存器的内容+指令中给出位移量 SORNT DB 40H,00H … MOV SI, OFFSET SORNT MOV BL, [SI+100H]
基址寻址
间接端口寻址16位 间接端口寻址 位 地址由DX提供可访 地址由 提供可访 问64K个端口 个端口
8086的寻址方式
1、 立即寻址方式
操作数直接包含在指令码中
MOV SI, 4A3CH SI
4A 3C 以IP为指针 为指针 取指令 M
BE 3C 4A
指令队列 (BIU)
BE 3C 4A
指令存放 在存储器中
2、 直接寻址
直接寻址方式是指操作数的偏移地址在指令中直接给出。
例如: 的字送入AX 例如:MOV AX,[200H];将数据段中偏移地址为 , ;将数据段中偏移地址为200H的字送入 的字送入
该指令执行之前,DS=2000H,AX=54C8H,BX=0300H, 存储单元20300H的内容是6A9BH。 问:执行指令后,相关寄存器及存储单元的值是什么? 源操作数的地址为: EA=(BX)= 0300H PA=(DS)*16+EA=2000H*16+0300H=20300H MOV BX, [SI] BX 31 8B DS 1000 0 SI 200 0 1200 0 12000 8B 31 8B 1C } 操作码

第3部分常用指令和寻址方式ppt课件

第3部分常用指令和寻址方式ppt课件
MOV AX那, 么物理地址=32000H
阐明
隐含的段为数据段 DS 可指定段跨越前缀 MOV AX, ES: [2000H] 操作数地址可由变量〔符号地址〕表示, 意变量的属性
但要留
VALUE …… MOV
MOV MOV
DB 10
AH, VALUE AX, VALUE AX, WORD PTR VALUE
LDS和LES
LDS REG,SRC 执行的操作: (REG) (SRC) (DS) (SRC+2) 把源操作数指定的4个相继字节送到由指令指定 的存放器及DS存放器中.该指令常指定SI存放器. LES REG,SRC 执行的操作: (REG) (SRC) (ES) (SRC+2) 把源操作数指定的4个相继字节送到由指令指定
8位
位移量
16位
段跨越前缀
数据段默许地址存放在CS存放器中,不需 指明 假设明确指明运用其它的数据段,称为段 前缀。例如 MOV AX, ES:[BX] MOV AX, ES:[BX+3]
3 逻辑运算指令
Assembly Language Programming
布尔数据
只需1位表示:0 或者 1 0 = FALSE 1 = TRUE 布尔运算 一元: NOT 二元: AND, OR, XOR
NOT vs. NEG
NOT destination Register or memory 0 1, 1 0 ,用于无符号数 不影响标志存放器 NEG destination 实现二进制补码,按位求反加1把正数转换 为负数;或者反之。 用于有符号数
AND, OR, XOR
AND|OR|XOR destination, source

第3章80888086指令系统(老师用的课件哦)

第3章80888086指令系统(老师用的课件哦)

第3章 8088/8086指令系统
图3.5 变址寻址示意图
第3章 8088/8086指令系统
例:MOV AX,200AH[SI];或(AX)←
[(DS)*16+(SI)+200AH
EA=(SI)
+200AH,SI为变址寄存器,200AH为16位的位移量。
图3.6为用BP寄存器进行变址寻址时的示意图。
第3章 8088/8086指令系统
3.存储器操作数 存储器操作数是把操作数放在存储器单元中。对这 类操作数,在指令中必须给出存储器的地址。存储器 的实际地址(也称物理地址)是由指定的段基址和段内地 址偏移量(也称为有效地址EA)所决定的。由于段基址 相对很少改变,故一般预先予以指定,以后通过隐含 方法使用,即只要段基址未改变,其在汇编指令中便 不再出现。此时,只给出有效地址EA(以各种寻址方式 给出)。
第3章 8088/8086指令系统
3.2 8088/8086指令系统
3.2.1 数据传送指令 1 .数据传送指令MOV 指令格式:MOV OPRD1,OPRD2 MOV 为操作码。 OPRD1为目的操作数,可以是寄存器、存储器、
累加器。
第3章 8088/8086指令系统
OPRD2为源操作数,可以是寄存器、存储器、累 加器和立即数。
第3章 8088/8086指令系统
4.寄存器间接寻址
寄存器间接寻址的操作数类型为存储器操作数,与 直接寻址方式的区别是:该存储单元的16位段内偏移 地址,不是从指令代码中直接得到,而是从指令所指 定的寄存器中得到。能用于间接寻址的寄存器为SI、 DI、BX、BP。若以SI、DI、BX进行间接寻址,应由 数据段DS的内容作为段基址,间接寻址寄存器的内容 为段内偏移量,并指定形成操作数的物理地址。若以 寄存器BP间接寻址,则BP中的内容为段内偏移量,段寄 存器SS与之一起形成物理地址。寄存器间接寻址示意 图如图3.4所示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
立即数寻址(imm)
操作数出现在指令中,是指令的一个组成部分。这 样的操作数叫做立即数.以这种指定操作数的方式 就叫做立即数寻址。 执行过程
例:
mov ah, 80h add ax, 1234h mov b1, 12h mov w1, 3456h add d1, 32123456h
其中:b1、w1和d1分别是字节、字和双字内存变量。
指令所要的操作数存放在内存中,在指令中直接给 出该操作数的有效地址,这种寻址方式为直接寻址 方式。 执行过程 物理地址=(段寄存器)×16+有效地址,其中段地址 在默认的ds,如果使用段超越前缀,那么,段地址 可在其它段寄存器。
14
1、直接寻址
例:假设有指令:mov ax, [2000h],在执行时, (ds)=3000h,内存单元32000h的值为1234h。问该 指令执行后,ax的值是什么?指令变为:mov al, [2000h], al的值是什么?
16
1、直接寻址
要点:
地址也常用内存变量名来表示,书写格式:v_1或 [v_1]。
如mov ax,varw
mov ax,[varw]
与立即数寻址的区别
在指令中,直接寻址给出操作数的EA,立 即数寻址给出操作数。
用数字书写时,格式不一样。
mov ax,1234h
mov ax,[1234]
17
2、寄存器间接寻址
第三章 操作数的寻址方式
1
第一节 汇编指令格式
汇编指令的格式: 指令助记符[操作数1[,操作数2]][;注释] 根据操作数的个数分,有以下三种格式:
1、双操作数指令 指令助记符 目的操作数(dst),源操作数(src) 运算之后,结果保存在目的操作数。
例:mov ax,1234h mov bx,5678h add ax,bx
PA=(ds)*16+(bx)=3000h*16+2000h=32000h (bx)=1234h
图示
20
3、寄存器相对寻址
操作数在存储器中,其有效地址是一个基址寄存 器(bx、bp)或变址寄存器(si、di)的内容和指令 中的8位/16位偏移量之和。
在不使用段超越前缀的情 况下,有下列规定: 若有效地址用si、di和bx 等之一来指定,则其缺省 的段寄存器为ds; 若有效地址用bp来指定, 则其缺省的段寄存器为 ss(即:堆栈段)。
一、概述 二、立即数寻址(imm) 三、寄存器寻址(reg) 四、存储器寻址(mem)
9
寄存器寻址(reg)
指令所要的操作数已存储在某寄存器中,或把目标 操作数存入寄存器。把在指令中指出所使用寄存器 (寄存器符号)的寻址方式称为寄存器寻址方式。
执行过程
指令中可以引用的寄存器及其符号如下: 8位寄存器有:ah、al、bh、bl、ch、cl、 dh和dl。 16位寄存器有:ax、bx、cx、dx、si、di、 sp、bp、ip和段寄存器。
7
立即数寻址(imm)
要点: 目的操作数不能使用立即数寻址。 例:mov 1234h,ax 立即数可以是8、16位数。在双操作数指令, 两个操作数的位数、数据类型必须相同。 例:mov al,1234h mov al,bx mov bx,al mov ax,70h mov ax,-70h
8
第二节 操作数的寻址方式
10
寄存器寻址(reg)
例:
add varw,ax add varb,bh
;其中varw,varb是字、字节内存变量。
add bh,78h
add ax,1234h
mov ax,bx
mov bh,al
要点:在双操作数指令,源操作数和目的操作数都 可以使用寄存器寻址。
11
第二节 操作数的寻址方式
一、概述 二、立即数寻址(imm) 三、寄存器寻址(reg) 四、存储器寻址(mem)
例:mov ax,[bx] ;(ax)←((ds)×16+(bx)) mov ax,[bp] ;(ax)←((ss)×16+(bp)) mov ax, es:[bp] ;(ax)←((es)×16+(bp))
19
2、寄存器间接寻址
例:假设有指令:mov ax, [bx],在执行时, (ds)=3000h,(bx)=2000h,存储单元32000h的内容是 1234h。问执行指令后,ax的值是什么?
2
第一节 汇编指令格式
2、单操作数指令
指令助记符 操作数
只有把数据先送入隐含的寄存器中、才能执行此操
作的指令。
例:mul cx
;(ax) ×(cx)→(dx,ax)
3、无操作数指令 指令助记符
例:clc ;0→cf stc ;1→cf
3
第二节 操作数的寻址方式
一、概述 二、立即数寻址(imm) 三、寄存器寻址(reg) 四、存储器寻址(mem)
操作数在存储器中,操作数的有效地址用si、di、 bx和bp等四个寄存器之一来指定,称这种寻址方式 为寄存器间接寻址方式。
18
2、寄存器间接寻址
在不使用段超越前缀的情况下,有下列规定: 若有效地址用si、di和bx等之一来指定,则其缺省的段寄存 器为ds; 若有效地址用bp来指定,则其缺省的段寄存器为ss(即:堆 栈段)。
12
存储器寻址(mem)
指令所要的操作数存放在内存中,在指令中给出存 储器的地址来指定操作数的方法称为存储器寻址方 式。 段地址 默认的段寄存器ds或ss。如果使用段超越前缀,那 么,段地址可存放在其它段寄存器。 EA 形成方式:分为5种 物理地址=段地址×16+有效地址(EA)
13
1、直接寻址
PA=(ds)×16+2000h=32000h (ax)=1234h (al)=34h
图示
15
1、直接寻址
例:指令:mov bx,es:[1234h],(es)=1000h, (11234h)=1234h。问该指令执行后,bx的值是什 么?
PA=(es)×16+1234h=11234h (bx)=1234h
4Leabharlann 概述寻址方式:在指令中,指定操作数或操作数的存放 位置的方法称为寻址方式。
操作数出现在指令中——立即数寻址 操作数保存在寄存器中——寄存器寻址 操作数保存在内存——存储器寻址 操作数保存在i/o端口——i/o寻址 (见第八章)
5
第二节 操作数的寻址方式
一、概述 二、立即数寻址(imm) 三、寄存器寻址(reg) 四、存储器寻址(mem)
相关文档
最新文档