当前位置:编程学习 > 汇编语言 >>

汇编语言的协处理器的指令系统

协处理器共有68条不同的指令,汇编程序在遇到协处理器指令助忆时,都会将其转换成机器语言的ESC指令,ESC指令代表了协处理器的操作码。
在协处理器指令在执行过程中,需要访问内存单元时,CPU会为其形成内存地址。协处理器在协处理器指令期间内利用数据总线来传递数据。80287协处理器利用I/O地址00FAH~00FFH来实现其与CPU之间的数据交换,而80387~Pentium系列芯片,则是利用I/O地址800000FAH~800000FFH来实现这两者之间的数据交换。
指令操作符的命名规则
协处理器指令的操作符(或助忆符)在命名设计时,遵循了下列规则:
1、在操作符后面加上字母P:表示该指令执行完后,还进行一次堆栈弹出操作。如:FADD和FADDP等;
2、在操作符后面加上字母R:表示该操作是反模式,它仅限于减法、除法指令。如:FSUB和FSUBR等;
正模式 —— 栈顶数据=栈顶数据 op 指令操作数,或OPN1=OPN1 – OPN2
反模式 —— 栈顶数据=指令操作数 op 栈顶数据,或OPN1=OPN2 – OPN1
假设:栈顶数据为10,内存变量data的值为1,分别执行下列指令将有不同的结果。
 FSUB data ;指令执行后,栈顶数据为9
FSUBR data ;指令执行后,栈顶数据为-9
FSUB ST, ST(1) ;指令执行后,ST=ST-ST(1)
FSUBR ST, ST(1) ;指令执行后,ST=ST(1)-ST

3、操作符的第2个字母是I:表示内存中数据是整数。它对加、减、乘除指令都有效。
例如:FADD data——浮点数加法;
FIADD data——整数加法,它表示内存单元data是一个整数,把该整数加到栈顶的浮点数上。
4、操作符的第2个字母是N:表示在指令执行之前检查非屏蔽数值性错误。如:FSAVE和FNSAVE等,前者称为等待形式(wait version),后者称为非等待形式(no-wait version)。
在使用.8087伪指令情况下,汇编程序会在等待形式的指令前面加上指令WAIT,而在非等待形式的指令前面加上空操作指令NOP。
理解了上述操作符命名规则,就能很容易地区分同类指令之间的差异。

 

 

补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,