协处理器的三大类数据传送指令

协处理器共有68条不同的指令,汇编程序在遇到协处理器指令助记符时,都会将其转换成机器语言的ESC指令,ESC指令代表了协处理器的操作码。

协处理器指令在执行过程中,需要访问内存单元时,CPU会为其形成内存地址。协处理器在指令执行期间内利用数据总线来传递数据。80287协处理器利用I/O地址00FAH~00FFH来实现其与CPU之间的数据交换,而80387~PenTIum系列芯片,则是利用I/O地址800000FAH~800000FFH来实现这两者之间的数据交换。

协处理器的三大类数据传送指令数据传送指令

为了满足协处理器和CPU之间进行数据交流的需求,就需要实现内存单元和协处理器之间进行数据传送的指令。协处理器的指令系统中有三大类数据传送指令:BCD传送指令、浮点数传送和整数传送指令。

一、BCD传送指令

1、FBLD

指令格式:FBLD MemBCD(*)

指令功能:将内存中的BCD数据压入协处理器的堆栈中;

(*) MemType是指定数据类型Type的内存单元,如:MemBCD是BCD类型的存储单元。此后不再说明。

2、FBSTP

指令格式:FBSTP MemBCD

指令功能:将协处理器中的BCD数据存入内存,并进行堆栈的弹出操作。

例如:

协处理器的三大类数据传送指令

二、浮点数传送指令

协处理器的三大类数据传送指令

(*) STReg是协处理器堆栈寄存器ST(0)~ST(7)。

例如:

协处理器的三大类数据传送指令

2、FST

协处理器的三大类数据传送指令

3、FSTP

协处理器的三大类数据传送指令

4、FXCH

协处理器的三大类数据传送指令

例如:FXCH ST(2)——栈顶数据与堆栈寄存器ST(2)进行数据交换。

三、整数传送指令

1、FILD

指令格式:FILD MemInt

其中:MemInt是定义为整型数据类型的内存单元,但不能是用DB定义的存储单元。下同,不再叙述。

2、FIST/FISTP

协处理器的三大类数据传送指令

指令FIST和FISTP的区别在于堆栈操作

  • 协处理器的三大类数据传送指令已关闭评论
    A+
发布日期:2019年07月13日  所属分类:参考设计