经典汇编语言教程:11.3.3 数学运算类指令
9980 点击·0 回帖
![]() | ![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | 在协处理器的指令系统中,有关数学运算指令有:加法指令、减法指令、乘法指令、除法指令和求平方根指令等。涉及数学运算的指令有比例运算、舍入运算、求绝对值运算和改变数值符号运算等指令。 1、加法指令[table][tr][td=1,4][/td][td=1,4]指令格式:[/td][td]FADD[/td][td][STReg1, STReg2](*)[/td][/tr][tr][td]FADD[/td][td]MemReal[/td][/tr][tr][td]FADDP[/td][td]STReg, ST[/td][/tr][tr][td]FIADD[/td][td]MemInt[/td][/tr][/table] (*)在此指令格式下,如果同时指定了二个堆栈寄存器,那么,其中一个寄存器必须是ST。其它指令的同类格式与此同理。 指令FADD含有二个隐含操作数ST(1)和ST,其运算功能是:从堆栈中弹出这二个操作数,然后把计算的“和”压入堆栈,即:ST=ST(1)+ST。 指令“FADD MemReal”的功能:ST=ST+MemReal 指令“FADDP STReg, ST”的功能:STReg=STReg+ST,并弹出堆栈的栈顶 指令“FIADD MemInt”的功能:ST=ST+MemInt 2、减法指令
指令FSUB含有二个隐含操作数ST(1)和ST,其运算功能是:从堆栈中弹出这二个操作数,然后把计算的“差”压入堆栈,即:ST=ST(1)-ST。 指令“FSUB MemReal”的功能:ST=ST-MemReal 指令“FSUBP STReg, ST”的功能:STReg=STReg-ST,并弹出堆栈的栈顶 指令“FISUB MemInt”的功能:ST=ST-MemInt 反模式的四条指令的功能在此从略,请参阅11.3.1中的有关说明。 3、乘法指令
4、除法指令
例如:
5、其它数学运算指令 在协处理器中,除了完成具体的数学运算指令外,还设置了若干个与数学运算有关的运算指令。具体的运算指令及其功能描述如表11.4所列。 表11.4 与数学运算有关的其它指令
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | ![]() |