指令系统(一)数据传送指令
来源:互联网 发布:淘宝最恶心sb的男模特 编辑:程序博客网 时间:2024/06/07 00:55
指令系统概述
指令-控制计算机完成指定操作的命令
机器指令-指令的二进制代码的形式
汇编指令-助记符性形式的指令
指令系统:CPU所有指令及其使用规则的集合
指令系统分类
指令按功能分为7大类
数据传送类
算术运算类
逻辑运算和移位
串操作
控制转移类
处理器控制
输入输出指令
指令格式:操作码 目的操作数,源操作数
8088/8086的操作数分为3类
1立即数
立即数只能用作源操作数
2.寄存器操作数
放在8个通用寄存器或4个段寄存器中的操作数,不允许将立即数传送到段寄存器
3.存储器操作数
一般不允许两个操作数同时为存储器操作数
8088/8086指令的执行时间
一条指令的执行时间(取指令,取操作数,执行指令,传送结果)
结论:
1)尽量使用寄存器作为操作数
2)若有可能,用移位代替乘法
3)尽量使用简单的寻址方式
数据传送指令可分为如下四种:
*通用传送
(1)MOV dest,src dest<--src
使用中需要注意:
**MOV指令不能再两个存储器单元之间进行数据直接传送
**MOV指令不能在两个段寄存器之间进行数据直接传送
**立即数不能直接传送给段寄存器
**目的操作数不能为CS,IP
不能传送的解决办法:用AX作为桥梁
存储器<---存储器
MOV AX,MEM1
MOV MEM2,AX
(2)堆栈操作指令
什么是堆栈?
按"后进先出"方式工作的存储区域。堆栈以字为单位进行压入弹出操作
规定有SS指示堆栈段的段基址,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。堆栈的最
高地址叫栈底。
堆栈指令使用时应注意几点
堆栈操作总是按字进行
不能从栈顶弹出一个字给CS
堆栈指针为SS:SP,SP永远指向栈顶
SP进行自动增减量(-2,+2)
(3)交换指令
格式 XCHG reg,mem/reg
功能:交换量操作数的内容
要求:两操作数必须有一个在寄存器中
操作数不能为段寄存器和立即数
源和目的操作数类型要一致
(4)字节-字转换指令
格式:CBW 把AL的符号位复制到AH
CWD:把AX的符号位复制到DX
*地址传送指令
共有三条
格式: LEA reg,mem ;将指定存储器的16位偏移地址送指定寄存器
LDS reg,mem32 ;该指令完成一个地址指针的传送 DS:reg<-(mem开始的四个内存单元)
LES reg,mem32同上,但DS改为ES
要求源操作数必须是一个内存操作数,目的操作数必须是一个16位的通用寄存器。
*标志传送
共有四条
(1)读标志指令LAHF
LAHF把标志寄存器低8位中的5个标志位传送到AH中的指定位
(2)设置标志指令SAHF
SAHF的功能与LAHF的功能正好相反,它是将AH的5个标志位传送到标志寄存器
(3)标志入栈指令PUSHF
把标志寄存器推入栈顶指令
(4)从栈顶弹出标志寄存器指令
数据传送指令中,除SAHF和POPF这两条指令外,其余所有指令均不影响标志位。
*输入输出
只限于用累加器AL或AX来传送消息
功能:(累加器)<--->I/0端口
(1)输入指令IN
格式:IN acc,DX ;DX表示的端口范围达64k
IN acc,PORT;PORT端口号0-255
(2)输出指令OUT
格式:OUT port,acc
OUT DX,acc
指令-控制计算机完成指定操作的命令
机器指令-指令的二进制代码的形式
汇编指令-助记符性形式的指令
指令系统:CPU所有指令及其使用规则的集合
指令系统分类
指令按功能分为7大类
数据传送类
算术运算类
逻辑运算和移位
串操作
控制转移类
处理器控制
输入输出指令
指令格式:操作码 目的操作数,源操作数
8088/8086的操作数分为3类
1立即数
立即数只能用作源操作数
2.寄存器操作数
放在8个通用寄存器或4个段寄存器中的操作数,不允许将立即数传送到段寄存器
3.存储器操作数
一般不允许两个操作数同时为存储器操作数
8088/8086指令的执行时间
一条指令的执行时间(取指令,取操作数,执行指令,传送结果)
结论:
1)尽量使用寄存器作为操作数
2)若有可能,用移位代替乘法
3)尽量使用简单的寻址方式
数据传送指令可分为如下四种:
*通用传送
(1)MOV dest,src dest<--src
使用中需要注意:
**MOV指令不能再两个存储器单元之间进行数据直接传送
**MOV指令不能在两个段寄存器之间进行数据直接传送
**立即数不能直接传送给段寄存器
**目的操作数不能为CS,IP
不能传送的解决办法:用AX作为桥梁
存储器<---存储器
MOV AX,MEM1
MOV MEM2,AX
(2)堆栈操作指令
什么是堆栈?
按"后进先出"方式工作的存储区域。堆栈以字为单位进行压入弹出操作
规定有SS指示堆栈段的段基址,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。堆栈的最
高地址叫栈底。
堆栈指令使用时应注意几点
堆栈操作总是按字进行
不能从栈顶弹出一个字给CS
堆栈指针为SS:SP,SP永远指向栈顶
SP进行自动增减量(-2,+2)
(3)交换指令
格式 XCHG reg,mem/reg
功能:交换量操作数的内容
要求:两操作数必须有一个在寄存器中
操作数不能为段寄存器和立即数
源和目的操作数类型要一致
(4)字节-字转换指令
格式:CBW 把AL的符号位复制到AH
CWD:把AX的符号位复制到DX
*地址传送指令
共有三条
格式: LEA reg,mem ;将指定存储器的16位偏移地址送指定寄存器
LDS reg,mem32 ;该指令完成一个地址指针的传送 DS:reg<-(mem开始的四个内存单元)
LES reg,mem32同上,但DS改为ES
要求源操作数必须是一个内存操作数,目的操作数必须是一个16位的通用寄存器。
*标志传送
共有四条
(1)读标志指令LAHF
LAHF把标志寄存器低8位中的5个标志位传送到AH中的指定位
(2)设置标志指令SAHF
SAHF的功能与LAHF的功能正好相反,它是将AH的5个标志位传送到标志寄存器
(3)标志入栈指令PUSHF
把标志寄存器推入栈顶指令
(4)从栈顶弹出标志寄存器指令
数据传送指令中,除SAHF和POPF这两条指令外,其余所有指令均不影响标志位。
*输入输出
只限于用累加器AL或AX来传送消息
功能:(累加器)<--->I/0端口
(1)输入指令IN
格式:IN acc,DX ;DX表示的端口范围达64k
IN acc,PORT;PORT端口号0-255
(2)输出指令OUT
格式:OUT port,acc
OUT DX,acc
1 0
- 指令系统(一)数据传送指令
- [汇编]8086指令系统---数据传送指令
- 汇编(五)——数据传送指令一
- 8086指令系统 操作数地址,双操作数,单操作数,无操作数指令。一,传送类指令;二,二、算数运算类指令
- 数据传送指令
- 数据传送指令
- 3.数据传送指令
- 数据传送指令MOV
- 数据传送指令
- 数据传送指令详解
- NASM 数据传送指令
- [汇编]8086指令系统---算术指令(一)
- 关于微机CPU的指令系统-----指令系统(移位操作指令)
- 8086汇编 数据传送指令
- 汇编之数据传送指令
- 数据类型与数据传送指令
- CPU的指令集(指令系统)
- 指令系统(二)算术运算指令
- android学习的几本书:深入理解Android内核设计思想
- 【经验】让参考文献按照自己希望的…
- zookeeper原理
- word修订功能的使用方法:修改论文…
- 内连接(inner)
- 指令系统(一)数据传送指令
- 外连接(outer join)
- 自连接
- 力导向算法简单实现
- Javascript中定义类
- Kinect for Windows SDK开发入门(十八):Kinect Interaction交互控件
- java & javascript 生成随机数
- AFNetWorking源码学习摘要
- Eclipse将引用了第三方jar包的Java…