数据传送指令

通用数据传送指令

传送指令MOV

格式
MOV DST,SRC
功能

将一个源操作数送到目的操作数

说明

1.DST是目的操作数,可以是寄存器,存储器,累加器

SRC是源操作数,可以是寄存器,存储器,累加器,立即数

2.MOV指令可分为四种情况

1.寄存器于寄存器之间数据传输指令
MOV AX,BX
MOV DS,AX
MOV BP,SI

注意:指令指针IP不参与数的传送,代码段寄存器CS可以作为源操作数,但不能作为目的操作数

2.立即数到通用寄存器的传送指令

注意:立即数只能用于源操作数,不能用于目的操作数

MOV AL,25
3.寄存器和存储器的数据传送指令

注意:段寄存器CS不能作为目的操作数

MOV AL,BUFFER
MOV AL,[SI]
4.立即数到存储器的数据传送
MOV ALFA,24;
注意情况

1.MOV指令不影响状态标志位

2.储存器和储存器之间不能进行数据直接传送

例子

用MOV指令实现两个内存字节单元内容的交换,设两个内存单元的偏移地址分别是 2035 H 2035H 2035H和 2045 H 2045H 2045H,

执行过程如下

所以具体程序段如下

MOV BL,DS:[2035H];
MOV CL,DS:[2045H];
MOV DS:[2035H],CL;
MOV DS:[2045H],BL;

进栈指令PUSH

格式
PUSH OPRD
说明

1.OPRD为字操作数可以是寄存器或者存储器操作数

2.PUSH的操作过程是 ( S P ) < − − ( S P ) − 2 , ( ( S P ) ) < − − O P R D (SP)<--(SP)-2,((SP))<--OPRD (SP)<−−(SP)−2,((SP))<−−OPRD,即先修改堆栈SP(压入时自动减2),然后将指定的操作数送入新的栈顶位置

出栈指令POP

格式
POP DST
说明

1.PUSH和POP指令对状态标志位没有影响

2.POP操作过程是 D S T < − − ( ( S P ) ) , ( S P ) < − − ( S P ) + 2 DST<--((SP)),(SP)<--(SP)+2 DST<−−((SP)),(SP)<−−(SP)+2

交换指令XCHG

格式
XCHG OPR1,OPR2
说明

1. O P R 1 OPR1 OPR1和 O P R 2 OPR2 OPR2的内容互换

2.两个操作数 O P R 1 OPR1 OPR1和 O P R 2 OPR2 OPR2的长度可均为 8 8 8位 16 16 16位,且其中至少有一个是寄存器,但不允许使用段寄存器

例子
XCHG AL,BL;                       寄存器AL和BL的内容互换
XCHG AX,BX;                       寄存器AX和BX的内容互换
XCHG [BX],CX;                     BX指向的内存字单元内容与CX的内容互换

累加器专用指令

查表指令XLAT

格式
XLAT
操作

通过AL中的索引值在字节型数据表中查到表项的内容并返回到AL

说明

在使用该指令之前,应在数据段中定义一个字节型表,并将表起始地址的偏移量放入BX,表的索引值放在AL中,索引值从 0 0 0开始,最大 255 255 255结束

执行指令后,在AL中即可得到对应该索引值的表项内容

TAB DB  3FH,06H,5BH,4FH,66H    ;定义的数据表DB  6DH,7DH,07H,7FH,6FH
MOV BX,OFFSET TAB              ;将TAB的偏移量送入BX中
MOV AL,4                       ;在AL中存放索引值4
XLAT                           ;查表得到的内容在AL中

输入指令IN

格式
IN AC,PORT
操作

把外设端口(PORT)的内容输入到累加器

说明

1.输入指令IN从输入端口传送一个字节到AL寄存器或者传送一个字到AX

2.当端口地址为 0 − 255 0-255 0−255时,可以直接寻址方式(即用一个字节立即数指定端口地址),也可以间接寻址方式,当端口地址大于 255 255 255时,只能用间接寻址方式

例子
IN AL,80H                         ;把80H端口的字节输入到AL中
IN AX,80H                         ;把80H端口的字输入到AX中
MOV DX,288H                       ;把端口地址288H送入DX
IN AL,DX                          ;把288H端口的字节输入到AL中

输出指令OUT

格式
OUT PORT,AC
操作

把累加器的内容输出到外设端口

地址传送指令

装入有效地址指令LEA(Load Effective Address)

格式
LEA REG,SRC
操作

把源操作数的有效地址(即偏移地址)装入指定寄存器

说明

源操作数必须是存储器操作数

目的操作数必须是16位的通用寄存器

例子
LEA BX,[BX+DX+6H];

设 B X = 1000 H , D X = 0200 H BX=1000H,DX=0200H BX=1000H,DX=0200H执行完指令后 B X = 1206 H BX=1206H BX=1206H

该指令和MOV指令的区别在于,LEA指令传输的是地址,MOV传输的是内容

加载数据段指针指令LDS(Load Pointer into register and DS)

格式
LDS REG,SRC
操作

将源操作数指定的FAR型指针(占4个连续单元)传送给目的操作数和DS寄存器

说明

目的操作数必须是16位的通用寄存器,传送时较低的两个字节装入16位的通用寄存器,较高的两个字节装入DS寄存器

加载附加段指针指令LES(Load Pointer into register and ES)

说明

与LDS不同就是较高的两个字节装入ES中

传送标志指令

LAHF指令

将标志寄存器的低八位送到AH寄存器

SAHF指令

AH寄存器送标志寄存器的低八位

PUSHF指令

先将SP的值减2,再将标志寄存器的值传送到栈顶

POPF

先将SP指示的栈顶字段送入标志寄存器,然后将SP的值

微机原理笔记——数据传送指令相关推荐

  1. 【汇编语言与计算机系统结构笔记05】汇编的系统结构,从C代码生产汇编代码,一个具体的、经典的数据传送指令(mov)实例与分析

    本次笔记内容: 06.寻址模式与数据传输指令等 文章目录 汇编程序员眼中的系统结构 如何从C代码生产汇编代码 如何装gcc? 汇编语言数据格式 第一条汇编指令实例 数据传送指令(mov) 语法与操作数 ...

  2. 微型计算机原理与接口技术——8086指令系统之数据传送指令

    8086指令系统之数据传送指令 前言 1.通用数据传送指令 一般传送指令MOV 指令格式 指令功能 MOV指令可实现以下各种传送 堆栈操作指令PUSH和POP 压栈指令 PUSH 指令格式 执行过程 ...

  3. 计算机组成原理学习笔记————计算机指令,MIPS指令集,存储器操作数,数据传送指令,取数存数指令

    计算机语言 现在计算机编程常用的语言是C,C++,Java等高级语言,但计算机第层是将高级编程语言的代码编译成二进制代码形式的指令才能执行.所以计算机语言中的基本单词是二进制形式的指令,一台计算机的全 ...

  4. 数据传送指令----mov(笔记)ATT

    数据传送指令--mov 基本概念 将数据从一个位置复制到另一个位置:mov类有四条指令组成:movb.movw.movl和movq:主要区别是传送数据的大小不同,分别是1. 2. 4和8字节. mov ...

  5. 【微机原理笔记】第 2 章 - 微处理器与总线

    微机原理笔记 - 主页 第 2 章 微处理器与总线 1. 微处理器概述 (1)程序的执行过程 CPU 的功能:取指令.翻译.取操作数.执行和保存结果. 内存的重要性:执行操作的来源 自动运行的核心:程 ...

  6. 微机原理笔记03-指令系统

    指令系统基本概念 指令 是指人向计算机发出的并且能够被计算机所识别的一种命令,它用来控制(要求)计算机做一些具体的事情. 这里所说的指令是面向机器的指令,它和具体的CPU是密切相关的,这意味着,对于不 ...

  7. 数据类型与数据传送指令

    数据类型与数据传送指令 数据类型.数据传送指令.间接寻址 一.数据类型 数据类型的基本特征是以数据为的数目度量的大小,其他特征主要是为了方便程序员记忆变量中存储的数据类型,默认情况下大小写不敏感. 类 ...

  8. 汇编语言--数据传送指令

    8086CPU的数据传送指令 mov.push.pop.pushf.popf.xchg 等都是数据传送指令,这些指令实现寄存器和内存.寄器和寄存器之间的单个数据传送

  9. movs 数据传送指令_PLC中简单好用的传送指令功能,你学会了吗?

    戳上方蓝字 "技成电工课堂" 关注我们哦! PLC的各种功能指令中,传送指令的使用非常频繁,且相对简单.一说到简单,我猜已经有很多人蠢蠢欲动,迫不及待地想征服这个传送指令了.那么, ...

最新文章

  1. 蓝桥杯:入门训练 序列求和
  2. 数字图像处理与Python实现笔记
  3. 逆序输出1到4位正整数
  4. 多线程的三种实现方法
  5. scrapy startproject【学习笔记02】
  6. linux系统编程之文件与I/O(六):fcntl 函数与文件锁
  7. SAP License:电子行业ERP实施
  8. 翻译pdf中的英文 python_浅谈python实现Google翻译PDF,解决换行的问题
  9. 计算机科学与技术专业职业素养,商丘工学院计算机科学与技术专业
  10. Es6语法实现的转盘抽奖效果——可配置转盘的抽奖概率
  11. 十五、CI框架之自动加载数据库
  12. 一位硕士毕业生三个月求职经历与经验的结晶
  13. 计算机科学导论实验,《计算机科学导论》实验.doc
  14. 阿里巴巴java开发规约插件详解
  15. ultracompare中文乱码解决方法
  16. 将一个大文件分割为若干个小文件的方法
  17. 胡瑜 简介中科院计算机所,胡瑜--中科院计算所计算机体系结构国家重点实验室...
  18. Android kotlin实现读取pdf和pptx文件
  19. 计算机系统使用寿命,笔记本电脑的使用寿命是多久,你了解吗?
  20. PHP面试题精讲—从Yii2源码ActiveForm看如何安全处理表单验证

热门文章

  1. win10系统下使用onnxruntime部署yolov5模型
  2. MATLAB用矩阵创建大型矩阵以及创建RGB图像
  3. DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》课程讲解之项目管理知识最全架构图、计算题四大题型、案例分析常考题型分析与经验技巧总结
  4. 用理科思想看文科[进阶版] V1.0.0.0.1
  5. 【SRE笔记 2022.9.30 集群知识及Centos基础优化】
  6. 数据结构之抽象数据类型
  7. wamp的apach打不开解决办法
  8. IYUU自动辅种工具配置及常见错误(Windows)
  9. Meta研究人员利用人工智能解码脑电语音信号(全文解读)
  10. c语言反转字符串输出