8086指令系统(一) 通用数据传送指令

您所在的位置:网站首页 地址传送指令有什么 8086指令系统(一) 通用数据传送指令

8086指令系统(一) 通用数据传送指令

2024-07-17 08:59| 来源: 网络整理| 查看: 265

通用数据传送指令 指令作用MOV dest,srcsrc -> destPUSH src(16位)src 内容入栈POP dest(16位)栈顶2个单元内容复制到dest中XCHG dest,src交换 dest 和 src 中的数据XLAT表的首地址(偏移地址)放到 BX , 将要查找的元素序号放到 AL 中, 执行XLAT指令后, 表中相应序号的元素被存入 AL 中LEA REG, 符号变量将符号变量所对应的内存偏移地址复制到 REG 中MOV REG, OFFSET 符号变量LEA REG, 符号变量MOV REG, SEG 符号变量将SEGMENT的段地址复制到REGLDS REG, SEGMENT:[偏移地址]指定段的偏移地址位置的两个单元内容复制到REG,+2两个单元的内容复制到DSLES REG, SEGMENT:[偏移地址]指定段的偏移地址位置的两个单元内容复制到REG,+2两个单元的内容复制到ESCBWAL数据的最高位扩展到AHCDWAX数据的最高位扩展到DXPUSHF将FLAGS寄存器中的内容入栈POPF将栈顶的内容(栈顶两个单元的内容)复制到FLAGS寄存器中LAHF将FLAGS寄存器的低8位内容复制到AH寄存器中SLAHF将AH寄存器的内容复制到FLAGS寄存器中 1. MOV指令

MOV 目标操作数, 源操作数

功能:   将一个操作数从源地址复制到目标地址。

注意:   (1). 两个操作数必须是相等字长的;   (2). 两个操作数不能同时是存储器操作数, 既不能实现内存中的单元复制到另一块内存中的单元;   (3). 两个操作数不能同时是段寄存器;   (4). 指令指针存储器IP 和 代码段寄存器CS 不能作为目标操作数;   (5). 寄存器FLAGS不能作为操作数;   (6). 源操作数是立即数, 目标操作数不能是段寄存器。

2. 入栈指令

堆栈:   堆栈是内存中一个特定的区域, 用于存放寄存器或存储器中暂时不用又必须保存的数据, 在内存中, 堆栈所处的段叫堆栈段, 其段地址在SS寄存器中。对堆栈的操作满足先进先出。 堆栈的作用:   交换两个数、签到计数器 等

入栈指令

PUSH 存储器操作数/寄存器

功能:   将内存中的数据或寄存器中的数据放入堆栈。

注意:   (1). 堆栈入栈以字节为单位, 每次2字节, 存储器必须是16位的;   (2). 在堆栈中存放数据, 从高地址向低地址存放;   (2). 堆栈段的内存由SS决定, 寄存器SP中存放着栈顶的偏移地址。

执行 PUSH AX 指令 步骤: ① SP = SP -2 ② 将数据拷贝到栈中   高8位复制到 SP + 1   低8位复制到 SP

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

3. 出栈指令

出栈指令

POP 存储器操作数/寄存器

功能:   将当前栈顶元素数据复制到内存中或寄存器中。

注意:   出栈时, 寄存器不能为CS

执行 POP AX 指令 步骤: ① 将数据拷贝到栈中   SP 数据复制到 低八位   SP + 1 数据复制到 高8位复制到 SP ② SP = SP + 2

4. 交换指令

XCHG 目标操作数, 源操作数

注意:   (1). 两个操作数不能同时为存储器操作数   (2). 两个操作数不能是段寄存器   (3). 两个操作数字长必须相同

4. 查找表指令

XLAT

功能:   根据查找表中的元素序号找出相应的元素

使用:   将查找表写好放到内存中, 将表的首地址(偏移地址)放到 寄存器BX , 将要查找的元素序号放到 寄存器AL 中(表中第一个元素序号为0), 执行XLAT指令后, 表中相应序号的元素被存入 寄存器AL中。

例子:

LEA SI, TABLE ;将TABLE(查找表)的偏移地址放到SI寄存器中 MOV BX, TABLE MOV AL, 0 XLAT

此时AL中存放的就是表中序号为0的元素的ASCII码

5. 取偏移地址的指令或运算符 取当前逻辑段偏移地址

LEA REG, MEM

功能:   将当前逻辑段中的变量(内存单元的符号地址, 存储器操作数)的16位偏移地址写入通用寄存器(最好选择间址寄存器)

取段偏移地址运算符

OFFSET

MOV REG, OFFSET MEM

功能:   与 LEA REG, MEM 等价

取段地址的运算符

MOV REG, SEG SEGMENT

功能:   将段的16位地址存入REG中

远地址传送指令

LDS REG, SEGMENT:[偏移地址]

功能:   将SEGMENT段的偏移地址位置的两个单元内容复制到REG, 将SEGMENT段的偏移地址 + 2 位置的内容复制到DS

在这里插入图片描述

LES REG, SEGMENT:[偏移地址]

功能:   将SEGMENT段的偏移地址位置的两个单元内容复制到REG, 将SEGMENT段的偏移地址 + 2 位置的内容复制到ES

6. 字位扩展指令

对于无符号数, 用零扩展 对于有符号数, 用符号位扩展

CBW

功能:   将寄存器AL数据的最高位扩展到AH

CBD 功能:   将寄存器AX数据的最高位扩展到DX

7. 标志寄存器数据传送指令

PUSHF

功能:   将FLAGS寄存器中的内容入栈。

POPF

功能:   将栈顶的内容(栈顶两个单元的内容)复制到FLAGS寄存器中。

LAHF

功能:   将FLAGS寄存器的低八位内容复制到AH寄存器中

SLAHF

功能:   将AH寄存器的内容复制到FLAGS寄存器中



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3