第三章 指令系统和寻址方式(一)

合集下载

第三章 MCS-51单片机的寻址方式和指令系统

第三章 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章 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? 操作码 操作数或操作数地址 指令的格式

第3章(1) 寻址方式和指令系统

第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章指令系统和寻址方式

第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。 。 • 单独的$或?有特殊含义,不能做符号名。 单独的 或 有特殊含义,不能做符号名。 有特殊含义 • 保留字不能用在名字项。 保留字不能用在名字项。

MCS-51_第03章 MCS-51的指令系统

MCS-51_第03章 MCS-51的指令系统

内容相互交换。
3.2.3 算术运算类指令
表 3.2 算术运算指令
表 3.2 算术运算指令
表 3.3 影响标志位的指令
表 3 3 影 响 标 志 位 的 指 令
.
一、 加法指令 1. 普通加法指令 ADD A, Rn ADD A, direct ADD A, @Ri ADD A, #data
MOV R0 30H A, @R0 内部RAM
30H
20H
A 20H
5. 基址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序存储器中的数据表格, 它以 基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器 A的内容作为操作数的地址, 例如: MOVC A, @DPTR+A JMP @A+DPTR MOVC A, @ PC+A
3.2.2 数据传送类指令
图 3 –1 MCS -51传送指令示意图
表 3.1 数据传送类指令一览表
表 3.1 数据传送类指令一览表
1. 数据传送到累加器A的指令 MOV A, Rn MOV A, direct MOV A, @Ri MOV A, #data 这组指令的功能是:把源操作数的内容送入累加器A。 例如: MOV A, #10H, 该指令执行时将立即数 10H送入累 加器A中。
这组指令的功能是:把源操作数的内容送入内部RAM 单元或特殊功能寄存器。其中第三条指令和最后一条指令 都是三字节指令。第三条指令的功能很强, 能实现内部 RAM之间、特殊功能寄存器之间或特殊功能寄存条指令是将16位的立即
数送入数据指针寄存器DPTR。
4. 累加器A与外部数据存储器之间的传送指令 MOVX A, @DPTR MOVX A, @Ri MOVX @DPTR, A MOVX @Ri, A

3. 寻址方式与指令系统

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 ;通用寄存器和段寄存器之间的 传送

第三章(1)-寻址方式

第三章(1)-寻址方式

MOV指令的功能是将源操作数src传送至目的操作数 dest,例如:
MOV MOV MOV MOV MOV
AL,05H BX,AX AX,[SI] AX,[BP+06H] AX,[BX+SI]
;AL←05H ;BX←AX ;AX←DS:[SI] ;AX←SS:[BP+06H] ;AX←DS:[BX+SI]
张永林-微机原理与接口技术电子讲稿-2010版
预习要求与提示:
n n
数据传送类指令 主要从下面4个方面入手:功能、支持的寻 址方式、对标志的影响、隐含约定
立即数寻址的功能
立即数寻址的执行
张永林-微机原理与接口技术
5
第三章(1)-寻址方式
2011/4/6
寄存器寻址的功能
寄存器寻址的执行
直接寻址的功能
有效地址 = BX/BP + SI/DI + 8/16位位移量
2.
注意操作数 所在的逻辑段。BX默认的在数据 段DS, BP默认的在堆栈SS。可使用段超越 前缀改变。
n
段地址对应BX基址寄存器默认是DS,对 应BP基址寄存器默认是SS;可用段超越 前缀改变
张永林-微机原理与接口技术电子讲稿-2010版
张永林-微机原理与接口技术
1
第三章(1)-寻址方式
2011/4/6
第3章
第3章
指令的助记符格式
操作码
n
示例
传送指令MOV的格式
MOV dest,src ;dest←src
n
演示
操作数1,操作数2
;注释
n
n
操作数2,称为源操作数 src,它表示参 与指令操作的一个对象 操作数1,称为目的操作数 dest,它不 仅可以作为指令操作的一个对象,还可 以用来存放指令操作的结果 分号后的内容是对指令的解释

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

MOV 40H, AL
MOV AH, 3064H
(2) 寄存器寻址方式* — 操作数在指定的寄存器中 MOV AX, BX
MOV AL, BH
MOV AX, 3064H
注意:
* * *
字节寄存器只有 AH AL BH BL CH CL DH DL SRC 和 DST 的字长一致 CS 不能用 MOV 指令改变 MOV AH, BX MOV CS, AX
* 不允许使用AX、CX、DX 存放 EA
MOV AX, [CX]
* SRC 和 DST 的字长一致
MOV DL, [ BX ]
MOV DX, [ BX ]
; [BX]指示一个字节单元
; [BX]指示一个字单元
* 适于数组、字符串、表格的处理
(5) 寄存器相对寻址方式*
(BX) (BP)
有效地址 =
立即数寻址方式举例
MOV AL,05H MOV AX,0102H ;AL←05H ;AX←0102H
低地址 B8 02 01 AX 01 AH 02 AL 高地址
3.2 寻址方式
------(2) 寄存器寻址方式
操作数存放在CPU的内部寄存器reg中,可以 是:
8位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 32位寄存器r32: EAX 4个段寄存器seg: CS、DS、SS、ES
( 7 ) 相对基址变址寻址方式
有些指令不需要操作数,通常的指令都有一 个或两个操作数,也有个别指令有3个甚至4 个操作数
3.1 指令的一般格式
操作码 操作数1,操作数2 ;注释 操作数2,称为源操作数 src,它表示参与指 令操作的一个对象 操作数1,称为目的操作数 dest,它不仅可以 作为指令操作的一个对象,还可以用来存放指 令操作的结果 例:MOV AX,1234H ;AX ← 1234H
(3) 直接寻址方式* — 有效地址EA由指令直接给出
例:MOV AX, [ 2000H ] EA=2000H, 假设(DS)=3000H, 那么PA=32000H
AH AL
30
50
32000
50 30
(AX) = 3050H
* 隐含的段为数据段 DS * 可使用段跨越前缀 MOV AX, ES: [2000H] * 操作数地址可由变量(符号地址)表示, 但要注意
有效地址=BX/BP+SI/DI+8/16位位 移量
+
源操作数的 物理地址
DS
1234
12340H 1000 BX 1000 SI 06
14346H AX AH AL
低地址
代码段
8B 41 06
段地址对应BX基址寄存器默 认是DS,对应BP基址寄存器 默认是SS;可用段超越前缀 改变 常用于二维数组查表操作 MOV AX,[BX+SI+06H] ;AX←DS:[BX+SI+06H
(6) 基址变址寻址方式*
(BX) 有效地址 = + (BP) 指令格式: MOV (SI)
(DI)
AX, [BX] [DI]
MOV
MOV
AX, [BX+DI]
AX, ES:[BX] [SI]
* 适于数组、字符串、表格的处理 * 必须是一个基址寄存器和一个变址寄存器的组合
MOV AX, [BX] [BP] MOV AX, [SI] [DI]
目的操作数
数据段 14346H 14347H 56 78
源操作数
高地址
MOV AX,[ BX+SI+06H ]
存储器
注意:
位移量可用符号(变量名)表示
在寄存器相对寻址或相对基址变址寻址方式中,位 移量可用符号表示:
MOV AX,[SI+COUNT] ;COUNT是事先定义的变量或常量(就是数值) MOV AX,[BX+SI+WNUM] ;WNUM也是变量或常量
低地址Biblioteka DS1234 12340H
代码段
A1 00
+
14340H AX AH AL
20 数据段 14340H 14341H 56 78
高地址
MOV AX,[ 2000H ]
存储器
3.2 寻址方式
存储器寻址方式
---(2)寄存器间接寻址方式
有效地址存放在基址 寄存器BX或变址寄 存器SI、DI中 默认的段地址在DS 段寄存器,可使用段 超越前缀改变
它可以是8位数值(00H~FFH) 也可以是16位数值(0000H~FFFFH) 也可以是32位数值 (00000000H~FFFFFFFFH)
----(1) 立即数寻址方式
当取指令时操作数作为指令机器字节的一部分一 起取出来存入cpu的指令队列中。执行该指令时, 直接得到该数。 立即数寻址方式常用来给寄存器赋值 操作数在哪里?在指令中直接给定,在代码段中 存储
低地址
DS
1234 12340H
代码段
8B 07
+
2000 BX
物理地址
14340H
目的操作数
AX AH AL
数据段 14340H 14341H 56 78
源操作数
MOV AX,[SI]
;AX←DS:[SI]
高地址
MOV AX,[ BX ]
存储器
MOV AX,[BX]
; AX ←DS:[BX]
3.2 寻址方式
3.2 寻址方式
存储器寻址方式
---(1)直接寻址方式
有效地址在指令中直接 给出 默认的段地址在DS段寄 存器,可使用段超越前 缀改变
MOV AX,[2000H] ;AX←DS:[2000H] ;指令代码:A10020 MOV AX,ES:[2000H] ;AX←ES:[2000H] ;指令代码:26A10020
MOV AX , COUNT [ SI ]
MOV AX , [ BP ] [ DI ] MOV AX , MASK [ BX ] [ SI ]
(1) 立即寻址方式* —— 操作数在指令中给出
指令格式:
MOV AL, 5 MOV AX, 3064H
MOV AL, ‘A’
* 只能用于 SRC 字段 * SRC 和 DST 的字长一致
DS 1234 12340H 06 14346H AX AH AL
低地址
代码段
8B 44
SI
物理地址
06
目的操作数
数据段 14346H 14347H 56 78
源操作数
高地址
存储器
3.2 寻址方式
存储器寻址方式
----(4)基址变址寻址方式
有效地址由基址寄存器(BX 或BP)的内容加上变址寄存 器(SI或DI)的内容构成:
存储器寻址方式
----(3)寄存器相对寻址方式
有效地址是寄存器内容与有符号8位 或16位位移量之和,寄存器可以是 BX、BP或SI、DI
有效地址=BX/BP/SI/DI+8/16位位移量
段地址对应BX/SI/DI寄存器默认是 DS,对应BP寄存器默认是SS;可用 段超越前缀改变 常用于数组或查表操作 2000 + MOV AX,[SI+06H] ;AX←DS:[SI+06H] MOV AX,[BP+06H] ;AX←SS:[BP+06H] MOV AX,[ SI+06H ]
同一寻址方式有多种表达形式
MOV AX,[BX][SI]
;等同于 MOV AX,[BX+SI] MOV AX,COUNT[SI] ;等同于 MOV AX,[SI+COUNT] MOV AX,WNUM[BX][SI] ;等同于 MOV AX,WNUM[BX+SI] ;等同于 MOV AX,[BX+SI+WNUM]
VALUE DB 10 MOV AH, VALUE MOV AX, VALUE MOV AX, WORD PTR VALUE
变量的属性
寄存器间接寻址* — EA 在基址寄存器(BX/BP) 或变址寄存器(SI/DI) 中
MOV AX, [BX] MOV AX, ES:[BX] MOV AX, [BP] PA = 16d (DS) + (BX) PA = 16d (ES) + (BX) PA = 16d (SS) + (BP)
代码段
8B 00
0006
14346H
SI
目的操作数
AX AH AL
数据段 14346H 14347H 56 78
源操作数
高地址
MOV AX,[ BX+SI ]
存储器
MOV AX,DS:[BP+DI] ;AX←DS:[BP+DI]
3.2 寻址方式
存储器寻址方式
---(5)相对基址变址寻址方式
有效地址是基址寄存器 (BX/BP)、变址寄存器 (SI/DI)与一个8位或16位 位移量之和:
(SI) (DI)
+
8位 16位
位移量
指令格式: MOV MOV
则: PA = 35000H
AX, COUNT[SI] AX, [COUNT+SI]

假设 (DS)=3000H, (SI)=2000H, COUNT=3000H,
假设(35000H)=1234H, 那么 (AX)=1234H
* 适于数组、字符串、表格的处理
寻址方式小结
与数据有关的寻址方式:以 MOV 指令为例
• • • • 立即寻址 寄存器寻址 直接寻址 寄存器间接寻址
相关文档
最新文档