清华大学信号与系统与微机第2章之指令系统(教师
时间:2025-04-07
时间:2025-04-07
第三节 与8086/8088兼容的指令系统一. 概述 二. 数据传送指令 三. 算术运算指令 四. 逻辑运算指令
五. 控制转移指令六. 处理机控制指令 七. 串操作指令(不作要求)
指令:是控制计算机进行各种操作的命令 指令系统: CPU所能执行的各种指令的总和, CPU的指令系统体现了CPU的功能和性能 程序:为实现某一功能而编制的指令序列 指令长度:单字节,双字节,三字节,…… 指令周期:指令执行速度 ……
指令格式例1) 操作码 2) 操作数
操作码ADD
操作数AL,10H数据、程序、堆栈
What to do ? Whom ? Where ? 7种寻址方式个数? 无操作数:NOP 单操作数:INC AL 双操作数:ADD AL , 10H 字节 类型匹配 字 内存 寄存器 I/O端口
类型?
回忆: 高级语言中对 数据/变量的类型要求
指令类型 数 据 传 送 通用传送 地址传送 标志传送 输入输出 加法 算术 运算 减法 乘法 除法 符号扩展 逻辑 操作 逻辑运算 移位 循环移位
助记符 MOV PUSH, POP, XCHG, XLAT , LEA, LDS, LES PUSHF, POPF, LAHF, SAHF IN, OUT ADD, ADC, INC, AAA, DAA SUB, SBB, DEC, NEG, CMP, AAS, DAS MUL, IMUL, AAM DIV IDIV AAD , , CBW, CWD AND, TEST, OR, XOR, NOT SHL, SAL, SHR, SAR ROL, ROR, RCL, RCR
156
指令类型 串 处理 串操作 重复控制 无条件转移 控 制 转 移 循环控制 过程调用 中断指令 处理机控制 条件转移
助记符 MOVS,CMPS,SCAS,LODS,STOS REP,REPE/REPZ,REPNE/REPNZ JMP JE/JZ, JNE/JNZ, JS, JNS, JO, JNO JP, JNP, JC, JNC, JCXZ JA/JNBE, JAE/JNB, JB/JNAE, JBE/JNA JG/JNLE, JGE/JNL, JL/JNGE, JLE/JNG LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ CALL, RET INT, INTO, IRET CLC, STC, CMC,CLD, STD, CLI, STI NOP, HLT, WAIT, ESC, LOCK
课堂上主要介绍下列常用的指令(22条) 例子、实验中需要其它指令时再介绍或需自学:数据传送指令: MOV 最常用的指令 通常应成双成对出现
堆栈操作指令: PUSH, POP 输入输出指令: IN, OUT 算术运算指令: ADD,
I/O端口与 AL 之间的数据传送
INC,
DEC, CMP
逻辑运算指令: AND, OR,跳转指令: JMP, 循环指令: LOOP 子程调用与返回指令: CALL, RET 中断调用与返回指令: INT N, 中断控制指令: STI, JZ,
TESTJC 无条件/零/进位当CX≠0时跳转(循环)
程序规模较大时使用
IRET 调用BIOS/DOS功能
CLI 允许/屏蔽硬件中断请求
类型匹配
多字节数 无符号数 整数 字符 ……
少字节数 大小?格式? 有符号数 浮点数 非字符
?
对于双操作数指令,两个操作数的类型应相同ADD MOV MOV MOV AX, CL, AL, AX, BL value 260 70000 1FFH 2ABCDH BL ;若 value 定义为字类型 字节
MOV AL, MOV AL, CMP AX,
?
字
操作数类型的确定
字节类型?字类型?
① 指令中有一操作数难以断其类型, 但有寄存器操作数, 则从寄存器操作数的类型
16位8位 8位AH BH CH DH AL BL CL DL
AX BX CX DX
例:MOV [BX], AL ;字节操作, [BX] ← AL MOV [BX] , AX ;字操作, [BX] ←AL,
[BX+1] ←AH
DS SP SS CS
② 指令中有一操作数难以断其类型, 但有变量,则从变量的类型data segment value1 db ? value2 dw ? data ends …… MOV value1 , 0 MOV value2 , 0 ……
变量定义
内存 value1 00H …. 00H 00H
;字节操作 ;字操作
value2 C语言中 如何定义变量?
③ 指令中两个操作数均难以断其类型, 则需对内存操作数进行强制类型说明。
MOV
[BX],
0
MOV byte PTR [BX] , 0 字节操作, [ BX ] ← 0 MOV word PTR [BX] , 0 字操作, [ BX ] ← 0,
[ BX+1 ] ← 0
操作数寄存器 内 存 操 作 数 内存变量
类型确定根据寄存器名可知其类型 从变量定义可知其类型 从操作数本身难以断其类型, 若另一操作数为寄存器,则从寄存器类型; 否则另一操作数为立即数,需强制类型说明。 (两个操作数不能都是内存操作数)
直接寻址 间接寻址
立即数
0~255字节/字;256~65535字类型不确定 从另一操作数类型
目的操作数 ,源操作数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 寄存器 寄存器 寄存器 寄存器 寄存器 内存变量 直接地址寻址 寄存器间接寻址 内存变量 直接地址寻址 寄存器间接寻址 内存操作数 立即数 立即数 立即数 ,寄存器 ,立即数 ,内存变量 ,直接地址寻址 ,寄存器间接寻址 ,寄存器 ,寄存器 ,寄存器 ,立即数 ,立即数 ,立即数 ,内存操作数 ,寄存器 ,立即数 ,内存操作数
类型可断 类型不可断 类型半可断
内存 操作数
非法组合
请 完 成 类 型 确 定 分 析
IP?,PSW?
指令中操作数的表示符号 data reg segreg mem 或 [ ] src dst ( ) oprd1 oprd2 表示内容 立即数操作数 通用寄存器操作数 8 位:AH、AL、BH、BL、CH、CL、DH、DL 16 位:AX、BX、CX、DX、BP、SP、SI、DI 段寄存器 CS、DS、SS、ES 存储器操作数(5 种寻址方式) 源操作数 目的操作数 寄存器、存储器、端口的内容 两操作数
数据传送指令寄存器 寄存器
最基本、最重要的指令change PROC MOV SI, OFFSET num MOV CL, num MOV CH, 0 MOV AX, 0 MOV DI, 10 next: MUL DI MOV BH, 0 MOV BL, [SI] AND BL, 0FH ADD AX, BX INC SI LOOP next zero: MOV BX, AX RET change ENDP
寄存器寄存器 立即数
内存单元I/O端口 寄存器/内存单元地址总线 AB 输 I/O I/O 入 接 接 设 口 口 备数据总线 DB 控制总线 CB
CPU
存 储 器
输 入 设 备
1)MOV传送指令格式 MOV dst,src
执行常用传送:
( dst ) ← ( src )MOV AL , BL MOV [ BX ] , AL MOV va …… 此处隐藏:2620字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:2010中考名著阅读训练题
下一篇:8~150吨汽车吊性能表