8086_8088_汇编_指令_手册

8086_8088_汇编_指令_手册

ID:14451576

大小:148.00 KB

页数:11页

时间:2018-07-28

8086_8088_汇编_指令_手册_第1页
8086_8088_汇编_指令_手册_第2页
8086_8088_汇编_指令_手册_第3页
8086_8088_汇编_指令_手册_第4页
8086_8088_汇编_指令_手册_第5页
资源描述:

《8086_8088_汇编_指令_手册》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、80868088汇编指令手册通用寄存器  (1)数据寄存器  数据寄存器共有4个寄存器AX、BX、CX、DX,用来保存操作数或运算结果等信息。  AX寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。 BX寄存器称为基址寄存器。常用于存放存储器地址。 CX寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。 DX寄存器称为数据寄存器。常用来存放双字数据的高16位,或存放外设端口地址。  (2)变址和指针寄存器  变址和指针寄存器包括SI、DI、SP、BP 4个16位寄存器,主要用于存放某个存储单元的偏移地址。 SI是源变

2、址寄存器。 DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。 SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址。 BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。   2.段寄存器  8086 CPU的4个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。段寄存器用来确定该段在内存中的起始地址。 代码段用来存放程序的指令序列。CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。  3.指令指针      8086 CPU中的指令指针I

3、P,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。  3.1 标志寄存器  8086 CPU中有一个很重要的16位标志寄存器,它包含9个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。  条件标志  (1)进位标志CF (2)零标志ZF (3)符号标志SF (4)溢出标志 OF  (5)奇偶标志 PF  (6)辅助进位标志AF  状态控制标志  (1

4、)方向标志DF (2)中断允许标志IF (3)追踪标志TF 运算结果标志位1、进位标志CF(CarryFlag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。2、奇偶标志PF(ParityFlag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据

5、传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。3、辅助进位标志AF(AuxiliaryCarryFlag)在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:(1)在字操作时,发生低字节向高字节进位或借位时;(2)在字节操作时,发生低4位向高4位进位或借位时。对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。4、零标志ZF(ZeroFlag)零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为

6、0时,可使用此标志位。5、符号标志SF(SignFlag)符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。6、溢出标志OF(OverflowFlag)溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。常用指令通用数据传送指令.MOV传送字或字节MOVOPRD1,OPRD2功能:本指令将一个源操作数送到目的操作数中,即O

7、PRD1<--OPRD21.OPRD1为目的操作数,可以是寄存器、存储器、累加器.OPRD2为源操作数,可以是寄存器、存储器、累加器和立即数.2.MOV指令以分为以下四种情况:<1>寄存器与寄存器之间的数据传送指令<2>立即数到通用寄存器数据传送指令<3>寄存器与存储器之间的数据传送指令<4>立即数到存储器的数据传送3.本指令不影响状态标志位PUSH把字压入堆栈PUSHOPRD功能:实现压入操作的指令是PUSH指令;1.OPRD为16位(字)操作数,可以是寄存器或存储器操作数.2.PUSH的操作过程是:(SP)<--(SP)-2,((sp))<--O

8、PRD即先修改堆栈指针SP(压入时为自动减2),然后,将指定的操作数送入新的栈顶位置.此处的((SP))<-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。