汇编语言的数据传送指令.doc
文本预览下载声明
.387 data1 DT 123, -543 data2 DT 2.5 ……FBLD data1 ;把BCD数据123压进栈FBSTP data2 ;把当前堆顶数据弹出,并传送给BCD型的内参单元二、浮点数传送指令1、FLD 指令格式:FLD STReg(*)/MemReal 指令功能:将浮点数据压入协处理器的堆栈中。当进行内存单元内容压栈时,系统会自动决定传送数据的精度。比如:用DD或REAL4定义的内存单元数值是单精度数等。(*) STReg是协处理器堆栈寄存器ST(0)~ST(7)。例如:.387 data1 DD 123, -543 data2 REAL8 -321.5 data3 REAL10 2.5 ……FLD data1 ;压一个单精度数据进栈FLD data2 ;压一个双精度数据进栈FLD ST(0) ;把堆栈寄存器ST(0)的值再压进栈FLD data3 ;压一个扩展精度数据进栈2、FST
指令格式:FST STReg/MemReal 指令功能:将协处理器堆栈栈顶的数据传送到目标操作数中。在进行数据传送时,系统自动根据控制寄存器中舍入控制位的设置把栈顶浮点数舍入成相应精度的数据。3、FSTP
指令格式:FSTP STReg/MemReal 指令功能:与FST相类似,所不同的是:指令FST执行完后,不进行堆栈的弹出操作,即:堆栈不发生变化,而指令FSTP执行完后,则需要进行堆栈的弹出操作,堆栈将发生变化。4、FXCH
指令格式:FXCH [STReg] 指令功能:将指定的寄存器中的浮点数与堆顶浮点数进行交换。如果不指定操作数,那么,默认ST和ST(1)二者之间交换数据。例如:FXCH ST(2)——栈顶数据与堆栈寄存器ST(2)进行数据交换。三、整数传送指令1、FILD指令格式:FILD MemInt其中:MemInt是定义为整型数据类型的内存单元,但不能是用DB定义的存储单元。下同,不再叙述。2、FIST/FISTP
指令格式:FIST MemIntFISTP MemInt 其中:Mem是定义整型数据类型的内存单元,但不能是用DB定义的存储单元。指令功能:将协处理器堆栈栈顶的数据传送到目标存储单元中。在进行数据传送时,系统自动根据控制寄存器中舍入控制位的设置把栈顶浮点数舍入成整型数据。
显示全部