云文档网 - 专业文章范例文档资料分享平台

清华大学信号与系统与微机第2章之指令系统(教师版)

来源:网络收集 时间:2024-05-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第三节 与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

百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典教育范文清华大学信号与系统与微机第2章之指令系统(教师版)在线全文阅读。

清华大学信号与系统与微机第2章之指令系统(教师版).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.yundocx.com/fanwen/1212032.html(转载请注明文章来源)
Copyright © 2018-2022 云文档网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219