安防监控知识
电气知识|8086指令系统
2017-05-26  浏览:46
安防之家讯:8086的指令系统可以分为以下六个功能组: 1.数据传送(Data Transter)

2.算术运算(Arithmetic)

3.逻辑运算(Logic)

4.串操作(String menipulation)

5.程序控制(Program Control)

6.处理器控制(Processor Control)

一、数据传送指令

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

1.数据传送MOV指令

一般格式MOVOPRD1,OPRD2

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

功能完成数据传送。

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

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

MOVAL,BL;字节传送

MOVCX,BX;字传送

MOVDS,BX

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

MOVCL,4

MOVAX,03FFH

MOVSI,057BH

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

MOVAL,BUFFER

MOVAX,[SI]

MOV[DI],CX

MOVSI,BLOCK[BP]

MOVDS,DATA[SI+BX]

MOVDEST[BP+DI],ES

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

例如:MOV[2000H],25H

MOV[SI],35H

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

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

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

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

MOVAL,AREAl

MOVAREA2,AL

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

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

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

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

(1) 入栈指令 PUSH

一般格式PUSHOPRD

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

功能将数据压入堆栈

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

【例如】 PUSHBX

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

(2) 出栈指令POP

一般格式POPOPRD

功 能 将数据弹出堆栈

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

【例如】POP AX

POP [BX]

POP DS

3.交换指令XCHG

一般格式XCHG OPRD1,OPRD2

功 能 完成数据交换

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

【例如】 XCHG AL,CL

XCHGAX,DI

XCHGBX,SI

XCHGAX,BUFFER

XCHGDATA[SI],DH

4.累加器专用传送指令

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

(1) IN 指令

一般格式

IN AL,n ; B AL←[n]

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

IN AL,DX; BAL←[DX]

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

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

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

(2) OUT 指令

一般格式 OUTn,AL; BAL→[n]

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

OUTDX,AL ;BAL→[DX]

OUTDX,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  ……

INAL,1第9个字符 AAH

XLAT ;查表 

OUT1,AL;(AL)= AAH 表长度256

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



安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 监控 的产品:
  • 安防监控资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved