微机原理指令系统共145页文档

合集下载

微机原理指令系统讲解

微机原理指令系统讲解

2012-3-21
10
四、寄存器间接寻址(Register Indirect 寄存器间接寻址 Addressing) MOV AX,[DI] 指令中的16位寄存器的内容不是操作数,而是 指令中的 位寄存器的内容不是操作数, 位寄存器的内容不是操作数 操作数的偏移地址,操作数本身则在存储器中。 操作数的偏移地址,操作数本身则在存储器中。 可用的寄存器有四个,分别是: 、 、 可用的寄存器有四个,分别是:SI、DI、BX 和BP,但如果使用不同的间址寄存器,则相 ,但如果使用不同的间址寄存器, 应的段寄存器有所不同
2012-3-21 23
一般传送指令MOV (Movement) ⑴ 一般传送指令 MOV dest,src ;(dest)←(src) ← 既可传送字节操作数( 位 既可传送字节操作数(8位),也可传送 字操作数( 位 字操作数(16位); 可使用本章讨论过的各种寻址方式; 可使用本章讨论过的各种寻址方式; 可实现以下各种传送: 可实现以下各种传送:
2012-3-21 26
堆栈操作指令PUSH和POP (Push ⑵ 堆栈操作指令 和 word onto stack, Pop word off stack) 堆栈是内存中一个特定的区域, 堆栈是内存中一个特定的区域,用以存放 寄存器或存储器中暂时不用但又必须保存 的数据。 的数据。
2012-3-21
2012-3-21 7
直接寻址: MOV AX,[3200H] 如果DS=5000H,则所 寻找的操作数的物理 地址: 5000H×10H+3200H =50000H+3200H =53200H
2012-3-21 8
段超越 : MOV BX,ES:[2100H]
2012-3-21

微机原理指令系统.

微机原理指令系统.

执行操作
(dst) ← (dst) - (src)
SBB dst, src
DEC oprd NEG oprd CMP oprd1, oprd2
(dst) ← (dst) - (src) - CF
(oprd) ← (oprd) - 1 (oprd) ← 0 - (oprd) (oprd1) - (oprd2)
14
减法运算指令
CMP (Compare比较操作) 例: (dest)-(src)
15
乘法指令
乘法:
8位乘法
MUL、IMUL(有符号乘) 、AAM
MUL CL; MUL BYTE PTR [BX+1] 执行AL*OPRD 积= AX
16位乘法
MUL CX; MUL WORD PTR [BX] 执行AX*OPRD 积= DX(高16位)| AX(低16位)
算术运算(Arithmetic)指令
二进制运算
加 减 乘
ADD, ADC, INC SUB, SBB, DEC, NEG, CMP MUL, IMUL DIV, IDIV
十进制调整
AAA, DAA AAS, DAS AAM AAD

符号扩展指令(CBW、CWD)
1
加法运算指令
ADD (Addition) 加法 用法:ADD dest,src;
A
B
OF
DF IF SF ZF AF
OV
DN EI NG ZR AC
NV
UP DI PL NZ NA
PF
CF
PE
CY
PO
NC
进位(是/否)
5
加法运算指令
ADC (ADD with Carry)

微机原理指令系统课件

微机原理指令系统课件
执行后 (AX) = (32000H) = 400BH
指令
8B
05
32000
0B
40
思考: 指令 MOV AX,[ DI ] 与MOV AX, DI有什么不同?
微机原理指令系统课件
13
用 SI、DI、BX 、BP作为间接寻址允许段跨越
指令中可以指定段跨越前缀来取得其他段中的数据。
例:MOV ES:[DI], AX MOV DX, DS:[BP]
例: MOV AX,ES:[2000H]
将ES:2000H单元内容送入AX。
例: MOV AX,LABLE 或 MOV AX,[LABEL]
将标号为LABLE(存放操作数单元的符号地址) ,即
DS:LABLE中的内容送入AX。
微机原理指令系统课件
7
例:MOV AX , [ 1000 H]
若 ( DS ) = 2000H
8B
指令
47
30
21030
76
89
17
(3)基址变址寻址方式:
操作数在存储器中,指令将基址寄存器(BX或BP)与变 址寄存器(SI或DI)内容之和作为操作数所在存储单元的有 效地址。
(BX) (SI)
EA =
+
(BP) (DI)
PA = (DS) * 16 + (BX)+ (SI)或(DI)
PA = (SS) * 16 + (BP) + (SI)或(DI)
指令操作数部分直接给出指令的操作数,操作数与操 作码一起存入代码段中。立即数有8位和16位。
例 :MOV AL, 05H ;源操作数为立即寻址 指令执行后,AL=05H,8位数据05H存入AL寄存器。

微机原理(第二章 指令系统)

微机原理(第二章 指令系统)

2.3 数据传送指令
数据传送类分为四类: 1. 通用传送: ①基本传送指令 MOV ②堆栈操作 ③交换指令 PUSH XCHG POP
2. 累加器专用传送: ①输入/ 输出 ②换码 3. 地址传送 4. 标志传送
2012-8-9
IN XLAT LEA LAHF
OUT
LDS SAHF
LES PUSHF POPF
19
7000 0
2000 1500 73500
CS段
2012-8-9
④ 变址寻址(相对寻址) 变址寻址适用于对一维数组的元素进行操作 ⑴无比例因子 EA=变址寄存器+位移量 16位寻址:SI,DI为基址寄存器, DS为默认段寄存器
32位寻址:除ESP外其余7个32位通用寄存器均可 作为变址寄存器,EBP默认SS为段寄存器,其余均 默认段寄存器为DS
执行后 AL=35H
完成什么功能?
2012-8-9
27
2. 堆栈操作指令 •PUSH 源操作数 进栈指令,先调整堆栈指针(-2), 再把源操作数压栈 PUSH AX PUSH [SI+5] POP 目标操作数 出栈指令,先将栈顶2字节送目标操作数,再调整 堆栈指针(+2) POP [SI+5] POP AX 注: 只能有16位通用寄存器进栈/出栈指令 •PUSHF POPF 16位标志寄存器进栈/出栈指令
2012-8-9 31
2. 减法指令 •SUB 目标操作数, 源操作数 目标操作数-源操作数——>目标操作数 •SBB 目标操作数, 源操作数 目标操作数-源操作数-CF——>目标操作数 •DEC 目标操作数 目标操作数-1——>目标操作数 •NEG 目标操作数 0-目标操作数——>目标操作数 影响A,C,O,P,S,Z 6个标志位 •CMP 目标操作数, 源操作数 只影响标志位,不改变目标操作数

微机原理课件第六章 指令系统

微机原理课件第六章 指令系统

第六章指令系统一单片机的编程过程图6-1例:TEST.ASM源文件ORG 2018HDCB 0BDHAX EQU 1AHBX EQU 1CHORG 2080HMAIN: LD AX,#01HLD BX,#03HLJMP MAINEND编译成.OBJ 文件XXXXXX(定位信息)0BDHXXXXXX(定位信息)LD 1AH,#01HLD 1CH,#03HLJMP 2080H翻译成.HEX 文件二 汇编语言指令格式:操作码:指令类型(传送、加、减、乘、除、逻辑判断等)操作数:代表操作码所要操作的数据或数据存放的地址,在8098的指令系统中一条0000H )2018H 2080H 2081H 2082H 2083H2084H 2085H 2086H 2087H 2088H 2089H 208AH 文件尾 操作码 操作数,…..,操作数三指令系统使用的数据类型共6种数据类型:指的是操作数的数据表示方式和所占用的字节数。

A、字节型:无符号型(字节型)0~255;有符号型(短整数型)(补码)-128~127B、字型:无符号型(字型)0~65535;有符号型(整数型)(补码)-32768~32767C、双字型:无符号型(双字型)0~232-1;有符号型(长数型)(补码)-231~231-1对于不同的数据类型分配数据的地址有限制。

对于字节型地址可任意分配,对于字型低位地址必须是偶数,对于双字型最低位地址必须是4的倍数。

在每条指令中,都已明确指定所使用的操作数的数据类型。

四寻址方式:寻址方式:在指令中操作数表达具体数据的方式。

共有四种。

A、立即数寻址:操作数直接就是数据。

数据前应加#号。

例:LDB 20H,#22HB、寄存器寻址:若数据是位于CPU内部的寄存器组或SFR时,可以使用寄存器寻址。

采用寄存器寻址的操作数是用要读写的寄存器或SFR的地址代表。

对于字或双字操作数用最低位的地址代表。

例:LDB 20H,22H(将22H的内容送到20H中)LD 20H,22H(将22H、23H的内容送到20H、21H中)C、寄存器间接寻址:对于读写外部地址单元(通过外部地址、数据总线),采用寄存器间接寻址方式。

(完整word版)微机原理与接口技术指令系统整理

(完整word版)微机原理与接口技术指令系统整理
32
算术运算指令
AAS
AAS (ASCII Adjust for Subtraction) 减法的ASCII调整指令
AAS
执行操作:执行之前必须先执行SUB或SBB指令,减法指令必须把两个非压缩的BCD码相减,并氢结果存放在AL寄存器中.
33
串操作指令
MOVS
MOVS ( MOVe String) 串传送指令
OUTPORT , AX
OUTDX , AL//间接的字节输出
OUTDX , AX
MOVAL,05HOUT27H, AL//将字节05H传送到地址27H的端口
15
算术运算指令
ADD(ADD)
ADDDST , SRC//Byte/Word
执行操作: dst=dst+src
1.两个存储器操作数不能通过ADD指令直接相加, 即DST 和SRC必须有一个是通用寄存器操作数.
MOVSB//字节串传送DF=0, SI = SI + 1 , DI = DI + 1 ;DF = 1, SI = SI - 1 , DI = DI - 1
MOVSW//字串传送DF=0, SI = SI + 2 , DI = DI + 2 ;DF = 1, SI = SI - 2 , DI = DI - 2
2.段寄存器不能作为SRC 和DST.
3.影响标志位Auxiliary Crray Flag ,Carry Flag, Overflow Flag, Parity Flag, Sign Flag 和Zero Flag ,如下所示:
CF根据最高有效位是否有进(借)位设置的:有进(借)位时CF=1, 无进(借)位时CF=0.
MOV BX , OFFSET OPER_ONE 等价于 LEA BX , OPER_ONE

4微机原理第四章:指令系统精品PPT课件

4微机原理第四章:指令系统精品PPT课件
例如:MOV AX,1234H; 目的操作数采用寄存器寻址 MOV DX,AX; 目的和源操作数均采用寄存器寻址
★ 对 16 位操作数,寄存器可用: AX、BX、CX、DX、SI、DI、SP、BP、CS、DS、ES、SS;
★ 对 8 位操作数,寄存器可用: AH、AL、BH、BL、CH、CL、DH、DL;
同样长度(字或字节)的寄存器; 5.两个操作数不能同时为段寄存器; 6.目的操作数不能是代码段寄存器 CS。
4.1.3 存储器数的寻址方式
★ 当操作数在存储器中时,有下面 5 种寻址方式,统称为: 存储器寻址方式。
★ 双操作数指令中的两个操作数不能同时为存储器操作数。
一、直接寻址
★ 指令中给出操作数所在存储单元的有效地址,默认为数据段。 ★ 为了区别于立即数,有效地址 EA 用方括号“[ ]”括起。
物理地址:PA=42000H 2.字在内存中占两个单元:
例如:MOV AX,1234H; AX 1234H 源操作数的寻址方式为立即寻址。执行过程如下图所示:
★ 立即寻址通常用于二地址指令中,且只能是源操作数。 ★ 数据传送应理解为复制传送,源操作数不会因为传送而丢失。
4.1.2 寄存器数的寻址方式
★ 寄存器寻址:操作数在寄存器中,指令中给出寄存器名。
▲ 本节着重讲解数据操作数寻址方式
4.1 8086 的寻址方式
二、地址操作数
地址操作数是与程序转移地址有关的操作数,即指令中 操作的对象不是数据,而是要转移的目标地址。 ★ 它也可以分为:
1.立即数操作数:即要转移的目标地址包含在指令中 2.寄存器操作数:转移的目标地址存放在寄存器中 3.存储器操作数:转移的目标地址存放在存储单元之中
★ 掌握指令的助记符,操作数的正确书写法;

微机原理指令系统..

微机原理指令系统..
通 用 寄 存 器 AH AL BH BL CH CL DH DL SP BP DI SI AX BX CX DX

地址总线 20位 数据总线 8088:8位 8086:16位
段寄存器
指令指针
ALU数据总线(16位)
CS DS SS ES IP 内部暂存器
总线 控 制逻辑 外部
总线
运算寄存器
EU 控 制系统
2. 唯一允许以段寄存器做操作数的指令种类;
且只有MOV、PUSH、POP这三条允许
26
通用数据传送(GP transfer)
MOV BYTE/WORD 数据传送;可以使用各种寻址方式;
MOV DST,SRC MOV AX,80A0H ; 执行:(dst) ← (src) (BX,[SI],[3000])
5
寻址方式
指令由操作码和操作数构成。
操作码在指令中已经显式给出; 如何寻找操作数?
寻址方式
寻址方式是CPU指令中规定的寻找操作数所在 地址的方式。
6
逻辑地址(回顾) 程序设计时,使用的是逻辑地址。逻辑地址由 “段基址”和“偏移量”构成(均为16位)。 表示方法:段基址:偏移量 “段基址”由段寄存器CS、DS、SS和ES提 供 “偏移量”由BX、BP、IP、SP、SI、DI或 根据寻址方式计算出的有效地址EA (Effective Address)提供
将 MOV AL , 0 JMP Label 写成 写成 MOVE AL,0 JUMP Label
注意操作数的范围
对字节操作指令 0 ~ FFH 对字操作指令 0 ~ FFFFH
21
0 ~ 255 0 ~ 65535
书写指令注意事项
对无操作数指令,不添加操作数
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档