指令系统和寻址方式(1).ppt
第三章 MCS-51单片机的寻址方式和指令系统
由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址
以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)
第3章(1) 寻址方式和指令系统
EA的组成不同,寻找其中的操作数的方式也随之不同。如何寻找操作数 的有效地址,进而找到所需操作数的方式就是寻址方式 因为EA的组成方式都体现在指令中,故寻址方式也可以说是在指令中获得 操作数所在地址的方法。
3.1 Pentium的寻址方式
• 指令的两个问题
– 指出进行什么操作 – 涉及的操作数和操作结果放在何处
在这种寻址方式中,操作数是在存储器中,但是,操作 数的地址的16位偏移量包含在以下四个寄存器SI、DI、 BP、BX之一中。这又可分成两种情况: 1、 BX、SI、DI间址时以DS为默认段地址; 例:MOV AX,[SI] 2、BP间址时以SS为默认段地址。 例:MOV AX,[BP]
医药信息工程学院 何永玲
二、操作数存在方式
在微型计算机中,操作数可能以以下四种方式存在:
• 操作数包含在指令中——即指令的操作数场就包含着操作数本身。
MOV AX, 1234 ; ADD AL, 2
• 操作数包含在CPU的某一个内部寄存器中—— 这时指令中的操作数场是
CPU内部 寄存器的一个编码。
MOV DS, AX
• 操 作 数 在 内 存 的 数 据 区 中 —— 这 时 指 令 中 的 操 作 数 场 包 含 着 此 操 作 数 的
医药信息工程学院 何永玲
3.2.2 算术运算指令(1-P88)
– 不带进位位的加法指令ADD
比如: ADD ADD ADD ADD 比如: ADC ADC ADC CX,1000H ;CX=CX+1000h DI,SI [BX+DI],AX EAX,[BX+2000H]
• 无符号数和有符号数采用同一套加法指令及减法 所有算术运算指令均影响状态标志。 指令有两个条件:
第3章指令系统和寻址方式
(6) 基址变址寻址方式 基址变址寻址方式*
(BX) 有效地址 = + (BP) 指令格式: 指令格式: MOV MOV MOV (SI) (DI)
AX, [BX] [DI] AX, [BX+DI] AX, ES:[BX] [SI]
* 适于数组、字符串、表格的处理 适于数组、字符串、 * 必须是一个基址寄存器和一个变址寄存器的组合
• 寄存器操作数
– 寄存器的内容参加运算或存放结果。 寄存器的内容参加运算或存放结果。
• 存储器操作数
– 指内存某地址的字节、字、双字等是指令的处 指内存某地址的字节、 理对象, 理对象,这时必须把处理对象取出或送入相应 地址。 地址。
有效地址和段超越
• 存储单元的物理地址由两部分组成:段 存储单元的物理地址由两部分组成: 寄存器保存的段基值,偏移地址。 寄存器保存的段基值,偏移地址。 • 在8086/8088的各种寻址方式中,寻找存 的各种寻址方式中, 的各种寻址方式中 储单元所需的偏移地址,称为有效地址, 储单元所需的偏移地址,称为有效地址, 用EA表示。 表示。 表示 • 不同的寻址方式,组成有效地址 的各 不同的寻址方式,组成有效地址EA的各 部分内容也不一样,寻址方式主要是EA 部分内容也不一样,寻址方式主要是 如何计算与寻找的问题。 如何计算与寻找的问题。
汇编指令的书写形式
• 格式
[name] operation operand [;comment] – 名字项(name):可以是标号或变量,表示本 名字项( ):可以是标号或变量 ):可以是标号或变量, 语句的符号地址。 语句的符号地址。
• 标号在代码段中定义,后跟冒号。 标号在代码段中定义,后跟冒号。 • 变量在数据段或附加数据段中定义,后面不跟冒号。 变量在数据段或附加数据段中定义,后面不跟冒号 不跟冒号。 • 名字项组成:字母打头的字符串组成。包含字符 名字项组成:字母打头的字符串组成。 (A~Z,0~9,_,?,$,@等),如MainLoop, , , , , , 等),如 , Calc_long_sum。 。 • 单独的$或?有特殊含义,不能做符号名。 单独的 或 有特殊含义,不能做符号名。 有特殊含义 • 保留字不能用在名字项。 保留字不能用在名字项。
《寻址与指令系统》课件
《寻址与指令系统》PPT 课件
本PPT课件为《寻址与指令系统》课程的讲解资料。课程通过深入浅出的方式 介绍了寻址方式与指令系统的重要概念和原则,旨在帮助您更好地理解计算 机系统的工作原理。
课程介绍
课程目标:掌握寻址方式与指令系统的基本概念及应用。 课程内容概述:介绍了寻址方式的定义、直接寻址与间接寻址的原理和特点,以及指令系统的定义、指 令格式和指令的执行过程。 授课教师介绍:由经验丰富的计算机科学专家担任授课教师,确保课程内容准确、深入。
控制指令
解析了控制指令的作用与原理,包括条件跳转、循环等控制流程的实现。
PPT课件演示
寻址方式的案例演示
通过实际案例演示,展示了不同寻址方式在计算 机系统中的应用和效果。
指令系统的案例演示
使用具体实例演示了指令系统的运行过程和对计 算机操作的影响。
课程总结
重点回顾了课程中的关键概念和要点,帮助学习者更好地理解和掌握寻址方 式与指令系统。
指令格式
讲解了不同类型指令的格式与编码规则,帮助学习者理解指令的组成和执行方式。
指令的执行
详细阐述了指令的执行过程,包括指令的取址、解码、执行、访存和写回。
指令的分类
数据传输指令
介绍了数据传输指令的特点和应用场景,以及在计算机操作中起到的重要作用。
算术逻辑指令
讲解了算术逻辑指令的功能和使用方法,涵盖了常见的数学运算和逻辑操作。 Nhomakorabea 寻址方式
寻址方式的定义
介绍了寻址方式的概念和 作用,为后续内容打下基 础。
直接寻址
讲解了直接寻址的原理与 应用,以及其在计算机体 系结构中的重要性。
3. 寻址方式与指令系统
算术运算类指令
加法指令(Addition) 带进位加法指令(Add with carry) 加1指令(Increment) 减法指令(Subtraction) 带借位减法(Subtract with borrow) 减1指令(Decrement) 求负数指令(Negative)
加法指令(Addition)
指令格式:add dest,src 功能:目的操作数和源操作数相加,其和数 存放在目的操作数中,源操作数原有内容不 变。 根据相加结果设置标志寄存器中的CF、PF、 AF、ZF、SF和OF。 Add指令可以进行字或字节操作。 对src和dest的具体内容的要求。
加法指令
Add ax,bx Add al,bl Add cx,20 Add cl,0A4h Add dl,da_byte Add da_word[si],dx 对于第四条指令,如果(cl) = 0e5h,
指令格式
双操作数指令:OPR DEST,SRC 单操作数指令:OPR DEST 无操作数指令:OPR
传送类指令
数据传送指令(move) mov dest,src 可以进行字节数据传送,也可以进行字数据 传送。 mov cl,05h ;字节传送 mov ax,1234h ;字传送 mov da_byte,12h ;字节传送 mov da_word,1234h ;字传送
位操作类指令
逻辑运算指令(Logical) 测试指令(Test) 移位/循环移位指令(shift/rotate) 处理器控制类指令
逻辑运算指令(Logical)
数据传送指令(move)
寄存器之间的传送 mov dl,cl ;字节传送 mov ax,bx ;字传送 mov ds,ax ;通用寄存器和段寄存器之间的 传送
七种寻址方式.ppt
寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对片外数据存储器的64K字节的间接寻址,例如:
MOVX A,@DPTR
(3)片外数据存储器的低256字节
例如:MOVX A,@Ri
(4)堆栈区
堆栈操作指令PUSH(压栈)和POP(出栈)使用堆 栈指针(SP)作间址寄存器
寄存器DPTR等。
1020
程序存储区 EA
片内RAM区
12
R2
4A
ACC
4A
MOV A,R2执行示意图
2.直接寻址方式 操作数直接以单元地址的形式给出: MOV A,40H 寻址范围: (1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外, 还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。
地址 译码
寄存器区 内部控制信号
数据缓冲器 外部数据总线DB
指令 时钟及清零 寄存器
译码
外部控制总线CB
返回
D7 D6 D5 D4 D3 D2 D1 D0 27H 0 0 1 0 0 0 0 0
3F 3E 3D 3C 3B 3A 39 38
图4.9 SETB 3DH 指令执行示意图
7.相对寻址方式
在相对寻址的转移指令中,给出了地址偏 移量,以“rel”表示,即把PC的当前值加上偏 移量就构成了程序转移的目的地址:
目的地址=转移指令所在的地址 + 转移指令的字 节数 + rel
偏移量rel是一带符号的8位二进制数补码数 。
范围是:–128 ~ +127
向地址增加方向最大可转移(127+转移指令字节) 个单元地址,向地址减少方向最大可转移 (128-转移指令字节)个单元地址。
汇编语言第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)
第四章-指令系统PPT课件
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
汇编语言第四章:指令系统和寻址方式
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
根据d的不同进行选取
第四章 第一章 指令系统和寻址方式 基础知识
d=1时的操作
第四章 第一章 指令系统和寻址方式 基础知识
d=0时的操作
第四章 第一章 指令系统和寻址方式 基础知识
如果2000H单元在附加段,指令为: MOV AX, ES:[2000H] 段跨越前缀: 段寄存器名: —— 改变默认使用的段寄存器
第四章 第一章 指令系统和寻址方式 基础知识
可以使用属性操作符 type PTR 来进行属性说明
第四章 第一章 指令系统和寻址方式 基础知识
(4)寄存器间接寻址方式 (Register Indirect Addressing ) 特点: (寄存器) = 操作数的偏移地址 计算操作数物理地址的公式:
next
(7)相对基址变址寻址方式 ( Relative Based Index Addressing ) 特点:(基址寄存器) + (变址寄存器)+位移量 = 操作数的偏移地址
例:设 ( SS ) = 3000H ( BP ) = 2000H ARRAY = 0250H ( SI ) = 1000H MOV AX, ARRAY[BP][SI] 要访问的存储单元物理地址为: 30000H+2000H +0250+1000H 30000H = 33250H
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
Байду номын сангаас
寻址方式及指令系统
协同发展提高计算机性能
通过寻址方式和指令系统的协同发展,可以不断提高计 算机的性能和灵活性,满足不断变化的计算需求。
谢谢
THANKS
序的可读性和可维护性。此外,间接寻址方式还可以用于实现间接函数调用、数组元素的访问等。
基址寻址方式
总结词
基址寻址方式是指将基址寄存器BX或BP 的内容加上位移量DISP。
VS
详细描述
在基址寻址方式中,操作数的有效地址是 由基址寄存器BX或BP的内容与位移量 DISP相加得到的。基址寻址方式常用于 数组元素的访问和变址运算等场景。通过 基址寻址方式,可以方便地实现数组元素 的遍历和跳转等操作。
变址寻址方式
总结词
变址寻址方式是指将变址寄存器的内容加上 位移量DISP。
详细描述
在变址寻址方式中,操作数的有效地址是由 变址寄存器的内容与位移量DISP相加得到 的。变址寻址方式常用于数组元素的访问和 程序中的循环结构等场景。通过变址寻址方 式,可以实现数组元素的动态遍历和循环变 量的自增等操作。
02 指令系统概述
CHAPTER
指令系统的定义
指令系统的定义
指令系统是计算机硬件能够直接执行 的指令集合,它规定了计算机所具有 的基本功能。
指令系统的特点
指令系统是计算机体系结构的核心组 成部分,其特点包括指令集的规模、 指令的功能、寻址方式、操作码的长 度等。
指令系统的组成
指令格式
01
指令格式是指令系统中每条指令的固定格式,包括操作码和地
间接寻址方式
总结词
间接寻址方式是指操作数通过间接指定的地址来访问,而不是直接给出操作数的值或寄 存器名称。
详细描述
在间接寻址方式中,指令中的地址码指示的是一个内存单元的地址,而不是直接给出操作数的值或寄存器名 称。通过访问该内存单元,可以得到操作数的值。间接寻址方式的优点是可以隐藏操作数的实际值,提高程
《指令系统》PPT课件
例:
已知:(DS)=2100H,(DI)=2000H
指令: MOV AX,[DI] ;AX ((DI))
物理地址=(DS)× 16 + (DI)
是一个内存 单元地址
=2100H × 16 + 2000H
=21000H + 2000H
=23000H
指令结果:将23000H单元内容送AL中,
将23001H单元内容送AH中。
22
2020/11/14
例:
将数据段的变量WVAR(即该变量名指示的内存单元数据)送至 AX寄存器 变量指示内存的一个数据,直接引用变量名就是采用直接寻址方式 变量应该在数据段进行定义,常用的变量定义伪指令 DB和 DW分别表示定义
字节变量和字变量 变量一经定义便具有逻辑地址和类型属性
23
南京理工大学动力学院
2009年
1
2020/11/14
第二章 8086/8088 指令系统
2.1 概述 2.2 寻址方式 2.3 数据传送指令 2.4 算术运算指令 2.5 逻辑运算指令 2.6 串操作指令 2.7 程序控制指令
2
2020/11/14
•指令是微处理器执行某种操作的命令。 •微处理器全部指令的集合称为指令系统(指令集)
将数据段中由BX指定偏移地址处的内存数据送至 AX寄存器 汇编指令: MOV AX, [BX]; 指令功能:AX←DS : [ BX ]; 该指令中有效地址存放于BX寄存器中,而数据则存放在数据段内存单元中,
假设BX内容设置为2000H,则该指令等同于 MOV AX, [2000H]
28
2020/11/14
一方面,会影响处理器执行指令的速度和效率 另一方面,对程序设计也很重要
微控制器寻址方式与指令系统
§3.2指令分类
• 数据传送类 • 算术运算类 • 逻辑操作类 • 控制转移类及设置类
12、、123R[R[、、、R装存,d123d=A=C...源加减乘M载储R12a操xr逻 逻 逻地..r±法法法数 数y作址软 程]源辑 辑 辑]运 运 运据 据=操中 序R与 或 异作算 算 算s 断 转数或移 3、45、、R堆45d..=求比栈34-测 移源..补较操操子 功试 位作作调 能数 用 设置
4、R2=D:[R3 - -] //((R3))=>R2, //(R3)-1=>R3。
5、主要用于堆栈操作
2、寄存器前置增量间接寻址
3、寄存器后置增量间接寻址
4、寄存器后置减量间接寻址
5、寄存器自动增减量间接寻址
五、变址寻址
R1=[BP+IM6] //((BP)+IM6)=>R1
六、PC相对寻址
用于转移指令,(PC)±IM6;IM6<=63
PUSH Rx,Rx to [SP] ▪压入某两个或多个寄存器
PUSH Rx,Ry to [SP] ▪先压栈,SP内容自动减1。 ▪不影响标志位。
例1、执行指令 PUSH R3,PC to [SP]
X
X
高 地
X
X
址
SP
PC
SR
R5
R4
R3
低
SP
地
址
2、出栈指令
POP Rx,Ry from [SP]
▪ 将以Rs的内容为起始地址的一组存储器中的内容 送到Rx~Ry中。先传送低序号寄存器。
▪ 弹出到单个寄存器 POP Rx,Rx from [SP]
▪ SP内容先自动增量,再弹出。 ▪ 影响标志位N、Z。
单片机指令系统-第1讲寻址方式
单片机指令系统-第1讲寻址方式单片机指令系统第 1 讲寻址方式在单片机的世界里,指令系统就像是它的“语言规则”,而寻址方式则是这门语言中至关重要的一部分。
简单来说,寻址方式决定了单片机如何找到它需要操作的数据或指令的位置。
让我们先来了解一下什么是寻址。
当单片机执行一条指令时,它需要知道从哪里获取操作数,这个确定操作数位置的过程就是寻址。
就好像你要在书架上找一本书,你得知道它在哪个架子、哪一层,这就是寻址的概念。
常见的寻址方式有很多种,下面我们来一一探讨。
第一种是立即寻址。
在立即寻址方式中,操作数直接包含在指令中。
比如说,指令“MOV A, 50H”,这里的“50H”就是一个立即数,单片机直接使用这个数值进行操作。
这种方式的优点是简单直接,执行速度快,因为操作数就在指令里面,不需要再去别的地方找。
接下来是直接寻址。
直接寻址是指指令中直接给出操作数所在的内部数据存储器地址。
例如,“MOV A, 30H”,这里的“30H”就是内部数据存储器的一个地址,单片机通过这个地址就能找到对应的操作数。
直接寻址方式可以访问片内 RAM 的低 128 个字节和特殊功能寄存器。
然后是寄存器寻址。
这种方式下,操作数存放在寄存器中。
比如“MOV A, R0”,操作数就在寄存器 R0 里面。
由于寄存器的访问速度通常比内存快,所以寄存器寻址方式能够提高指令的执行效率。
寄存器间接寻址也很常见。
在这种方式中,操作数的地址存放在寄存器中。
以“MOV A, @R0”为例,单片机先从寄存器 R0 中取得操作数的地址,然后再根据这个地址去获取操作数。
这种方式可以访问片内RAM 的 00H FFH 地址空间。
变址寻址则稍微复杂一些。
它通过基址寄存器和变址寄存器的内容相加来得到操作数的地址。
比如说,在 8051 单片机中,“MOVC A, @A +DPTR”就是变址寻址的一个例子。
这种方式常用于访问程序存储器中的数据表格。
相对寻址主要用于跳转指令。
第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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 指令系统和寻址方式
汇编这种寻址方式时,汇编程序将寄存器的地址编号写入 指令的地址码字段。当机器执行含有这种寻址方式的指令时, 根据地址码字段的编号访问到寄存器,继而访问到操作数。这 种寻址方式的优点是:寄存器数量一般在几个到几十个,比存 储器单元少很多,因此它的地址码短,从而缩短了指令长度, 节省了程序存储空间;另一方面,从寄存器里取数比从存储器 里取数的速度快得多,从而提高了指令执行速度。
第3章 指令系统和寻址方式
根据地址码字段所给出地址的个数,指令格式可分为零地 址、一地址、二地址、三地址和多地址指令格式。大多数指令 需要双操作数,分别称两个操作数为源操作数和目的操作数, 指令运算结果存入目的操作数的地址中。这样,目的操作数的 原有数据将被取代。Intel 8086/8088的双操作数运算指令就采用 这种二地址指令。
代码段
AL
OP
0FFH
图3.2 8位立即寻址操作示意图
第3章 指令系统和寻址方式
代码段 AX
OP 34H 12H图3来自3 16位立即寻址操作示意图第3章 指令系统和寻址方式
3.2.2 寄存器寻址方式 寄存器寻址是指寻找的操作数在某个寄存器中。这种寻址
方式在汇编语言格式中表示为 操作码 寄存器名
比如AL,BX,CX,DS、IP等等。 【例3-4】MOV AX,BX MOV AL,BL
每条指令由两部分组成:操作码字段和地址码字段,格式 如图3.1所示。
第3章 指令系统和寻址方式
操作码
操作数(地址码)
图3.1 指令格式
操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直接给出 操作数,或者给出操作数存放的寄存器编号,或者给出操作数存 放的存储单元的地址或有关地址的信息。
第3章 指令系统和寻址方式
【例3-2】 MOV AL,0FFH 操作的示意图如图3.2所示。 【例3-3】 MOV AX,1234H 操作的示意图如图3.3所示。 另外要注意,这种寻址方式不能用于单操作数指令。若用 于双操作数指令,也只能用于源操作数字段,不能用于目的操 作数字段。
第3章 指令系统和寻址方式
第3章 指令系统和寻址方式
操作数及操作结果存放的地点有三处:存放在指令的地址 码字段中;存放在寄存器中;存放在存储器的数据段、堆栈段 或附加数据段中。与其对应的三种操作数是:立即操作数、寄 存器操作数和存储器操作数。寻找这些操作数有三种基本寻址 方式,立即寻址方式、寄存器寻址方式和存储器寻址方式。其 中,存储器寻址又包括多种寻址方式。下面分别介绍这些寻址 方式。
第3章 指令系统和寻址方式
3.2 8088/8086 CPU的寻址方式
寻找和获得操作数、操作数存放地址或指令转移地址的方 法称为寻址方式。8088/8086 CPU的寻址分为两类,即数据寻址 和指令寻址。指令寻址方式将在3.3.5节结合控制转移指令加以 讨论。
机器执行指令的目的就是对指定的操作数完成规定的操作, 将操作结果存入规定的地方。因此,如何获得操作数的存放地 址及操作结果的存放地址就是一个很关键的问题。8088/8086 CPU有多种方法来获取操作数的存放地址及操作结果的存放地 址,这些方法统称为数据寻址方式。
第3章 指令系统和寻址方式
其中,“267”是数字;“10010011B AND 0FEH”是一个数 字表达式;PORT1是一个用EQU定义的变量名,属于常数; DATA1是定义的段名,实际上就是段地址,是一常数。这些都 是立即寻址方式。
汇编立即寻址方式时,汇编程序首先计算出数字表达式的 值,然后将其写入指令的地址码字段,这称为立即数。
第3章 指令系统和寻址方式
3.2.1 立即寻址方式 立即寻址方式寻找的操作数紧跟在指令操作码之后。这种
寻址方式在汇编语言格式中表示为
操作码 数字表达式
其中,这个数字表达式的值可以是一个8位整数,也可以是 一个16位整数。 【例3-1】 MOV AX,267
MOV AL,10010011B AND 0FEH MOV AL,PORT1 MOV AX,DATA1
指令中用于确定操作数存放地址的方法,称为寻址方式。 如果地址码字段直接给出了操作数,这种寻址方式叫立即寻址; 如果地址码字段指出了操作数所在的寄存器编号,叫寄存器寻 址;如果操作数存放在存储器中,则地址码字段通过各种方式 给出存储器地址,叫存储器寻址。
第3章 指令系统和寻址方式
指令有机器指令和汇编指令两种形式。前一种形式由基2 码(二进制)组成,它是机器所能直接理解和执行的指令。但这 种指令不好记忆,不易理解,难写难读。因此,人们就用一些 助记符来代替这种基2码表示的指令,这就形成了汇编指令。汇 编指令中的助记符通常用英文单词的缩写来表示,如加法用 ADD、减法用SUB、传送用MOV等等,这些符号化了的指令使 得书写程序、阅读程序、修改程序变得简单方便了。但计算机 不能直接识别和执行汇编指令,在把它交付给计算机执行之前, 必须翻译成计算机所能识别的机器指令。汇编指令与机器指令 是一一对应的,本书中的指令都使用汇编指令形式书写,便于 学习和理解。
第3章 指令系统和寻址方式
第3章 指令系统和寻址方式
3.1 指令系统概述 3.2 8088/8086 CPU的寻址方式 3.3 8088/8086 CPU的指令系统 习题3
第3章 指令系统和寻址方式
3.1 指令系统概述
程序是指令的有序集合,指令是程序的组成元素,通常一 条指令对应着一种基本操作。一台计算机能执行什么样的操作, 能做多少种操作,是由该计算机的指令系统决定的。一台计算 机的指令集合,就是该计算机的指令系统。每种计算机都有自 己固有的指令系统,互不兼容。但是,同一系列的计算机其指 令系统是向上兼容的。
第3章 指令系统和寻址方式
3.2.3 存储器寻址方式 当操作数放在存储器中的某个单元时,CPU要访问存储器
才能获得该操作数。如果存储器的存储单元地址是20位,把通 过各种方法算出段内偏移地址(有效地址),结合段地址形成20 位物理地址找到操作数的方法,统称为存储器寻址方式。