清华大学信号与系统与微机第2章之指令系统(教师版)
更新时间:2023-06-12 03:31:01 阅读量: 实用文档 文档下载
- 清华大学985信号与系统推荐度:
- 相关推荐
第三节 与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 var1 , AL MOV DS , AX MOV AL , [ BX ] MOV AX , var1AL , 9 BX , OFFSET buffer [ value ] , 0 WORD PTR [ BX ] , 1
reg/mem/segreg ← reg
例:
reg
← mem 例:
reg/mem
← data
MOV MOV MOV MOV
MOV指令特点及注意事项: 不允许存储器传送到存储器MOV [ BX ] , v
alue MOV AL,[2000H] MOV [BX], [2000H] MOV [ BX ] ,AL
不允许立即数直接传送给段寄存器MOV DS,1000H MOV AX ,1000H MOV DS,AX 立即数、CS、IP、PSW不能做传送指令的目的操作数
请用DEBUG或 汇编程序等验证之
00000H ……
内存
10000H 指令1 10002H 指令2 10003H 指令3 10004H 指令4 …… ……
CPU立即数 寄存器
40000H 数据1 40001H 数据2
40002H 数据3…… ……
控制器 ALU
寄存器
FFFFFH
利用DEBUG学习指令(示例)编程完成 B5h + 8Fh = ? 学习加法ADD指令及其对状态标志位的影响。
D:\>DEBUG 10110101 -A ;汇编指令 + 10001111 0AF8:0100 MOV AL,B5 进位 1 1 1 1 1 1 1 0AF8:0102 ADD AL, 8F 01000100 0AF8:0104 -R ;显示指令执行前各寄存器的值 AX=0000 BX=0000 CX=0000 DX=0000 、、、、、、 CS=0AF8 IP=0100 NV UP EI PL NZ NA PO NC - T=100 2 ;执行指令,查看结果 AX=0044 BX=0000 CX=0000 DX=0000 、、、、、、 CS=0AF8 IP=0104 OV UP EI PL NZ AC PE CY 0AF8:0104 2080FC01 AND [BX+SI+01FC], AL -
用DEBUG验证指令的正确性D:\MASM>DEBUG -A 1693:0100 MOV ES, DS ^ Error 1693:0100 MOV AX, DS 1693:0102 MOV ES, AX 1693:0104 -
例:将 4000:1000H 内存单元清零
MOV DS ,
4000H
MOV [1000H] , 00H
?
例:将 4000:1000H 内存单元清零MOV MOV MOV MOV MOV AX, DS, BX, AL, [BX], 4000H AX 1000H 00H AL
MOV AX, 4000H MOV DS, AX MOV byte PTR [1000H],00H MOV MOV MOV MOV
MOV MOV MOV MOV
AX, DS, BX, [BX],
4000H AX 1000H 00H
AX, 4000H DS, AX AL, 00H [1000H],AL
???
LEA reg , mem 功能:把内存操作数的偏移地址(OFFSET)传送给指定的16位通用寄存器 例: 两条指令的功能 完全一样
LEA BX , var1 MOV BX , OFFSET var1LEA DX , string MOV DX , OFFSET string LEA SI , xx MOV SI , OFFSET xx 比较: MOV BX , var1 MOV BX , OFFSET var1
正在阅读:
清华大学信号与系统与微机第2章之指令系统(教师版)06-12
幼儿园说课稿大班【5篇】03-27
完整打印版2017人教版小学三年级上册语文复习教案 - 图文03-05
2012年秋四年级语文9月月考试卷12-21
关怀理论及其对当今中国社会关怀匮乏的启示10-13
深化对马克思劳动价值论的认识04-24
糟糕的周末作文550字06-18
鸭子得救了作文二年级300字06-22
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 清华大学
- 系统
- 微机
- 指令
- 信号
- 教师
- 北京去西藏旅行团行程须知
- 第7章国际资本流动
- 全尺寸检验作业指导书
- 药品生产企业安全生产管理规章制度汇编
- 当前基层党务公开存在的问题和对策
- 8~150吨汽车吊性能表
- 高中语文知识树范例
- 5-1-1 明清帝国的兴替
- 美工设计培训方案
- 2012年“深冷分离工”高中初级技能鉴定公共题库补充
- 2015高考备考高考语文命题趋势预测及指导(整理精校版)
- 辽宁省实验中学分校2015-2016学年高二历史上学期期中试题 文
- 交通事故案例学习
- 601899紫金矿业集团股份有限公司独立董事关于公司第七届董事会临时会2021-01-14
- 2013麻疹防治知识培训资料
- “十三五”重点项目-硫精矿水泥项目可行性研究报告
- 幼儿教师的职业幸福感
- 会计要素及恒等式
- 2010中考名著阅读训练题
- 小品《钱是爹》台词