• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 8086指令系统

8086指令系统

作者:汇编爱好者 字体:[增加 减小] 来源:互联网 时间:2017-06-17

汇编爱好者通过本文主要向大家介绍了8086指令系统一览表,8086微处理器,8086指令系统课件,8086指令集,8086汇编等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div>    8086的指令系统可以分为以下六个功能组:

    1.数据传送(Data Transter)

    2.算术运算(Arithmetic)

    3.逻辑运算(Logic)

    4.串操作(String menipulation)

    5.程序控制(Program Control)

    6.处理器控制(Processor Control)

    一、数据传送指令

    主要介绍 MOV,XCHG、堆栈和地址传送指令。

    1.数据传送MOV指令

    一般格式  MOV  OPRD1,OPRD2

    MOV 是操作码,OPRD1和OPRD2分别是目的操作数和源操作数。

    功  能    完成数据传送。

    具体来说,一条数据传送指令能实现:

    ⑴ CPU内部寄存器之间数据的任意传送(除了代码段寄存器CS和指令指针IP以外)。

    MOV  AL,BL;字节传送

    MOV  CX,BX;字传送

    MOV  DS,BX

    ⑵ 立即数传送至CPU内部的通用寄存器组(即AX、 BX、CX、DX、BP、SP、SI、DI),

    MOV  CL,4

    MOV  AX,03FFH

    MOV  SI,057BH

    ⑶ CPU内部寄存器(除了CS和IP以外)与存储器(所有寻址方式)之间的数据传送。

    MOV  AL,BUFFER

    MOV  AX,[SI]

    MOV  [DI],CX

    MOV  SI,BLOCK[BP]

    MOV  DS,DATA[SI+BX]

    MOV  DEST[BP+DI],ES

    ⑷ 能实现用立即数给存储单元赋值

    例如:MOV  [2000H],25H

    MOV  [SI],35H

    对于MOV 指令应注意几个问题:

    ①存储器传送指令中,不允许对CS和IP进行操作;

    ②两个操作数中,除立即寻址之外必须有一个为寄存器寻址方式,即两个存储器操作数之间不允许直接进行信息传送;

    如我们需要把地址(即段内的地址偏移量)为AREAl的存储单元的内容,传送至同一段内的地址为AREA2的存储单元中去,MOV指令不能直接完成这样的传送,但我们可以CPU内部寄存器为桥梁来完成这样的传送:

    MOV  AL,AREAl

    MOV  AREA2,AL

    ③两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式为段寄存器赋初值;如:MOV AX,0;MOV DS,AX

    ④目的操作数,不能用立即寻址方式。

    2.堆栈指令    (简述堆栈的概念及存取特点,如先进后出)

    包括入栈(PUSH)和出栈(POP)指令两类。仅能进行字运算。(操作数不能是立即数)

    (1) 入栈指令   PUSH

    一般格式  PUSH  OPRD

    源操作数可以是CPU内部的16位通用寄存器、段寄存器(CS除外)和内存操作数(所有寻址方式)。入栈操作对象必须是16位数。

    功  能  将数据压入堆栈

    执行步骤为:SP=SP-2;[SP]=操作数低8位;[SP+1]= 操作数高8位

    【例如】 PUSH  BX

    执行过程为:SP=SP-1,[SP]=BH;SP=SP-1,[SP]=BL,如下图所示。

    (2) 出栈指令POP

    一般格式  POP  OPRD

    功   能   将数据弹出堆栈

    对指令执行的要求同入栈指令。

    【例如】  POP   AX                                

    POP   [BX]                          

    POP   DS

    3.交换指令  XCHG

    一般格式  XCHG OPRD1,OPRD2

    功 能   完成数据交换

    这是—条交换指令,把一个字节或一个字的源操作数与目的操作数相交换。交换能在通用寄存器与累加器之间、通用寄存器之间、通用寄存器与存储器之间进行。但段寄存器和立即数不能作为一个操作数,不能在累加器之间进行。

    【例如】 XCHG AL,CL

    XCHG  AX,DI

    XCHG  BX,SI

    XCHG  AX,BUFFER

    XCHG  DATA[SI],DH

    4.累加器专用传送指令

    有三种,输入、输出和查表指令。前两种又称为输入输出指令。

    (1) IN 指令

    一般格式

    IN   AL,n   ; B   AL←[n]

    IN   AX,n   ; W  AX←[n+1][n]

    IN   AL,DX  ; B  AL←[DX]

    IN   AX,DX ; W  AX←[DX+1][DX]

    功能  从I/O端口输入数据至AL或AX。

    输入指令允许把一个字节或一个字由一个输入端口传送到AL或AX中。若端口地址超过255时,则必须用DX保存端口地址,这样用DX作端口寻址最多可寻找64K个端口。

    (2) OUT 指令

    一般格式   OUT  n,AL  ;   B    AL→[n]

    OUT  n,AX  ;   W   AX→[n+1][n]

    OUT  DX,AL ;  B    AL→[DX]

    OUT  DX,AX ;  W   AX→[DX+1][DX]

    功  能    将AL或AX的内容输出至I/O端口。

    该指令将AL或AX中的内容传送到一个输出端口。端口寻址方式与IN指令相同。

    (3)  XLAT指令

    一般格式  XLAT; AL=(DX)×16+(BX)+(AL))

    功  能  完成一个字节的查表转换。

    要求:①寄存器AL的内容作为一个256字节的表的下标。②表的基地址在BX中,③转换后的结果存放在AL中.                  TABLE:         

    【例如】MOV   BX,OFFSET TABLE                        

    MOV AL,8  ……

    IN  AL,1                第9个字符   AAH    

    XLAT ;查表                                   

    OUT  1,AL  ;(AL)= AAH       表长度256  

    本指令可用在数制转换、函数表查表、代码转换等场合。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 8086指令系统

相关文章

  • 2017-06-28汇编源码系列之free
  • 2017-06-28用汇编编写屏幕保护程序
  • 2017-06-28汇编源码系列之getspace
  • 2017-06-28汇编教程:启动画面
  • 2017-06-28V86模式切换程序
  • 2017-06-28汇编内存管理和文件输入输出
  • 2017-06-28WIN98SE硬盘主引导记录代码反汇编分析
  • 2017-06-28对宏的再认识
  • 2017-06-28利用汇编从命令行提取文件名
  • 2017-06-17打印I/O

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 实模式存储器寻址
    • 汇编中的伪操作
    • 汇编源码系列之col
    • 指令格式
    • 几种基本的逻辑运算
    • 汇编语言学习指南(三)
    • 汇编语言的艺术-观念正误(一)
    • Win32中调试API
    • 外部设备
    • 用汇编语言编写消息框程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有