登录/注册

8086微处理器指令

更多

好的,以下是关于 8086 微处理器指令集的主要分类和一些关键指令的中文介绍:

核心概念: 8086 指令是直接指挥CPU进行操作的二进制编码。一条指令通常包含一个操作码(指明做什么操作)和操作数(指明操作的数据来源和目的地,如寄存器、内存地址或立即数)。操作数寻址方式多样。

主要指令分类与示例:

  1. 数据传输指令 (Data Transfer):

    • MOV dest, src: 将数据从源操作数 src (寄存器、内存、立即数) 复制到目标操作数 dest (寄存器、内存)。是使用最频繁的指令。
      • 示例: MOV AX, BX (将BX内容复制到AX); MOV [SI], AL (将AL内容复制到SI指向的内存单元)
    • XCHG op1, op2: 交换两个操作数 (op1op2) 的内容。两者必须同为寄存器或其中一个为内存。
    • LEA reg, mem: 将内存操作数的偏移地址(而非其内容)加载到目标寄存器 (reg) 中。
    • LDS reg, mem: 从内存操作数 mem 指向的连续4个字节中,加载段值DS 段寄存器,加载偏移地址到目标寄存器 (reg)。
    • LES reg, mem: 功能同 LDS,但加载段值到 ES 段寄存器。
    • PUSH src: 将源操作数 (src: 寄存器、段寄存器、内存字) 压入堆栈 (SP减小)。
    • POP dest: 将栈顶数据弹出到目标操作数 (dest: 寄存器、段寄存器、内存字) (SP增大)。
    • IN acc, port: 从指定的输入端口 (port) 读取一个字节/字到累加器 (AL/AX)。
    • OUT port, acc: 将累加器 (AL/AX) 中的一个字节/字写入指定的输出端口 (port)。
  2. 算术运算指令 (Arithmetic):

    • ADD dest, src: 目标操作数 dest = dest + src。设置标志位。
    • ADC dest, src: 目标操作数 dest = dest + src + 进位标志CF。用于多字节加法。
    • SUB dest, src: 目标操作数 dest = dest - src。设置标志位。
    • SBB dest, src: 目标操作数 dest = dest - src - 借位标志CF。用于多字节减法。
    • INC op: 操作数 op (寄存器、内存) 自增1。不影响CF标志。
    • DEC op: 操作数 op (寄存器、内存) 自减1。不影响CF标志。
    • MUL src: 无符号乘法。src (寄存器、内存字节/字) 与 AL/AX 相乘,结果在 AX (8位x8位) 或 DX:AX (16位x16位) 中。
    • IMUL src: 带符号(整数)乘法。操作同 MUL
    • DIV src: 无符号除法。如果 src 是字节,AX / src,商在 AL,余数在 AH;如果 src 是字,DX:AX / src,商在 AX,余数在 DX
    • IDIV src: 带符号(整数)除法。操作同 DIV
    • CMP dest, src: 执行 dest - src 比较操作,根据结果设置标志位(CF, ZF, SF, OF等),但不保存结果。常用在条件跳转前。
    • NEG op: 操作数 op (寄存器、内存) 取补码 (即求相反数: op = 0 - op)。
  3. 逻辑运算指令 (Logical):

    • AND dest, src: 目标操作数 dest = dest AND src (按位与)。置CF=OF=0。
    • OR dest, src: 目标操作数 dest = dest OR src (按位或)。置CF=OF=0。
    • XOR dest, src: 目标操作数 dest = dest XOR src (按位异或)。置CF=OF=0。
    • NOT op: 操作数 op (寄存器、内存) 按位取反 (逻辑非)。
    • TEST dest, src: 执行 dest AND src 测试操作,根据结果设置标志位(尤其是ZF, SF),但不保存结果。常用在条件跳转前检查特定位。
  4. 移位和循环移位指令 (Shift/Rotate):

    • SHL/SAL dest, count: 逻辑左移/算术左移。低位补0,移出位进入CF。count 可为1或CL寄存器内容。SAL 对带符号数有意义,但操作同 SHL
    • SHR dest, count: 逻辑右移。高位补0,移出位进入CF。
    • SAR dest, count: 算术右移。高位用符号位(最高位)填充,移出位进入CF。用于带符号数。
    • ROL dest, count: 循环左移。最高位移到CF 同时 移到最低位。
    • ROR dest, count: 循环右移。最低位移到CF 同时 移到最高位。
    • RCL dest, count: 带进位循环左移。CF值移入最低位,最高位移出到CF。
    • RCR dest, count: 带进位循环右移。CF值移入最高位,最低位移出到CF。
  5. 程序控制转移指令 (Control Transfer):

    • JMP target: 无条件跳转到目标地址 target (可以是标签、寄存器或内存地址)。
    • 条件跳转指令: 根据标志位状态决定是否跳转。常用:
      • JE/JZ (ZF=1, 相等/等于零跳转)
      • JNE/JNZ (ZF=0, 不相等/不等于零跳转)
      • JA/JNBE (CF=0 and ZF=0, 高于/不低于等于跳转,无符号数)
      • JB/JNAE/JC (CF=1, 低于/不高于等于/有进位跳转,无符号数)
      • JG/JNLE (ZF=0 and SF=OF, 大于/不小于等于跳转,带符号数)
      • JL/JNGE (SF != OF, 小于/不大于等于跳转,带符号数)
    • CALL proc: 调用子程序 proc。先将返回地址(下条指令地址)压栈,然后跳转到 proc
    • RET [n]: 从子程序返回。弹出栈顶的返回地址并跳转回去。可选操作数 n 表示在弹出返回地址后,再额外增加栈指针 SP 的值 n (通常用于清理传递的参数)。
    • INT n: 软件中断。调用系统中断服务程序 n (n是中断号,0-255)。
    • INTO: 溢出中断。如果溢出标志 OF=1,则产生中断4。
    • IRET: 中断返回。用于从中断服务程序中返回,同时恢复标志寄存器。
  6. 处理器控制指令 (Processor Control):

    • CLC: 清除进位标志 (CF=0)。
    • STC: 设置进位标志 (CF=1)。
    • CMC: 进位标志取反 (CF = 非 CF)。
    • CLD: 清除方向标志 (DF=0)。串操作后指针递增
    • STD: 设置方向标志 (DF=1)。串操作后指针递减
    • CLI: 清除中断允许标志 (IF=0)。禁止可屏蔽中断。
    • STI: 设置中断允许标志 (IF=1)。允许可屏蔽中断。
    • HLT: 暂停 CPU执行,直到发生中断或复位。
    • NOP: 空操作。消耗时钟周期,不进行任何实质性操作。常用于延时或占位。
  7. 字符串操作指令 (String - Often used with REP prefix):

    • MOVSB / MOVSW: 移动字符串数据 (字节或字)。从 DS:SI 指向的内存复制到 ES:DI 指向的内存,并根据 DF 递增/递减 SIDI
    • CMPSB / CMPSW: 比较字符串 (字节或字)。比较 DS:SIES:DI 指向的数据,并根据 DF 递增/递减 SIDI。设置标志位如 CMP
    • SCASB / SCASW: 扫描字符串 (字节或字)。将累加器 AL/AXES:DI 指向的数据比较,设置标志位,并根据 DF 递增/递减 DI
    • LODSB / LODSW: 加载字符串 (字节或字)。将 DS:SI 指向的数据加载到 AL/AX,并根据 DF 递增/递减 SI
    • STOSB / STOSW: 存储字符串 (字节或字)。将 AL/AX 存储到 ES:DI 指向的内存,并根据 DF 递增/递减 DI
    • REP: 重复前缀。重复后续的字符串指令 (MOVS, STOS, LODS) CX 次(CX 是计数寄存器)。
    • REPE/REPZ: 相等/为零时重复。重复后续的字符串指令 (CMPS, SCAS) 直到 CX=0ZF=0 (不相等/不为零)。
    • REPNE/REPNZ: 不相等/不为零时重复。重复后续的字符串指令 (CMPS, SCAS) 直到 CX=0ZF=1 (相等/为零)。

重要特性与注意事项:

以上是8086指令集的核心部分概述。掌握这些指令及其功能、寻址方式和标志位影响是理解8086汇编编程的基础。在实际编程中,需要结合具体需求选择指令并正确管理寄存器和内存。

处理器指令的获取过程

微处理器指令的获取是计算机执行程序过程中的关键环节,它决定了微处理器如何对数据和指令

2024-10-05 15:16:00

微处理器执行指令的基本过程

微处理器,作为现代计算机的核心部件,负责执行存储在内存中的指令,完成各种计算和控制任务。指令的执行过程不仅体现了

2024-10-05 15:07:00

简述微处理器指令集架构

微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中的核心组成部分,它定义了计算机能够执行的指令

2024-10-05 14:59:00

微处理器监控电路MAX690用户手册

微处理器监控电路MAX690用户手册

资料下载 Freely_99 2021-08-14 17:31:13

嵌入式微处理器与应用

嵌入式微处理器与应用(嵌入式开发环境的构建包括几部分内容)-该文档为嵌入式微处理器与应用讲解文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看………………

资料下载 佚名 2021-07-30 09:59:26

ARM嵌入式微处理器体系结构

嵌入式微处理器是嵌入式系统的核心。目前32位嵌入式微处理器是市场的主流。

资料下载 姚小熊27 2021-04-09 09:28:00

一文读懂ARM微处理器指令系统

一文叫你如何读懂ARM微处理器指令系统。

资料下载 姚小熊27 2021-03-26 14:30:58

使用PROTUES仿真8086微处理器芯片的资料合集

本文档的主要内容详细介绍的是使用PROTUES仿真8086微处理器芯片的资料合集。

资料下载 原罪心中人 2020-04-29 08:00:00

微处理器指令集有哪些

微处理器的指令集是微处理器设计和功能实现的基础,它决定了微处理器能够执行

2024-10-05 14:58:00

微处理器指令集架构介绍

微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中至关重要的部分,它定义了微处理器能够执

2024-08-22 10:53:45

计算机指令架构与微处理器设计原理

MIPS——内部无互锁级微处理器( Microprocessor without interlocked piped stages ),采用RISC 指令集,所有的

2023-06-27 16:56:17

微处理器的外部结构是怎样构成的

结构1微处理器的外部结构总线的功能微处理器的内部结构典型的CPU内部结构图堆栈指针SP微处理器的外部结构

2022-02-14 07:40:41

16位和32位微处理器的相关资料推荐

第2章 16位和32位微处理器微处理器的性能指标最主要的是以下两项:1.字长2.主频一、16位微处理器80868086是Intel系列的16位

2022-01-25 06:19:32

ARM微处理器指令系统

2.ARM微处理器的指令系统ARM微处理器的指令集是加载/存储型的,即

2021-12-20 06:54:28

ARM微处理器指令系统实验

实验三ARM微处理器指令系统一、实验目的1. 掌握ARM微处理器指令集的

2021-12-14 06:51:17
7天热门专题 换一换
相关标签