(转)汇编语言浮点数指令集


汇编语言浮点数指令集

;////////////////////////////////////////////////////////////////////////////////
;////                     浮点数载入指令
;///////////////////////////////////////////////////////////////////////////////
;助记符 操作数          功能
fld    memory(real)    ; 将存储器中的实型压人堆栈
fild   memory(integer) ;将存储器的整型数值转化为浮点数并压人堆栈
fbld   memory(BCD)     ;将存储器的BCD码转化为浮点数并压人堆栈
fld    st(num)         ;将浮点型寄存器中的数值压入堆栈
fld1   (none)          ;1.0压人堆栈
fldz   (none)          ;0.0压人堆栈
fldpi (none)          ;Π(pi) 压人堆栈
fldl2e (none)          ;log2(e)压人堆栈
fldl2t (none)          ;log2(10)压人堆栈
fldlg2 (none)          ;log10(2)压人堆栈
fldln2 (none)          ;loge(2)压人堆栈
finit (none)          ; 初始化浮点型单元,并清空8个寄存器的内容

;////////////////////////////////////////////////////////////////////////////////
;////                   浮点数数据存储指令
;///////////////////////////////////////////////////////////////////////////////
;助记符 操作数          功能
fst     st(num)         ;复制st的值来替换st(num)的内容;只有st(num)是受到影响
fstp    st(num)         ;复制st的值来替换st(num)的内容;st出栈
fst     memory(real)    ;复制st的值为实型数,存入存储器;堆栈不受影响
fstp    memory(real)    ;复制st的值为实型数,存入存储器;st出栈
fist    memory(integer) ;复制st的值,并转换为整型数存入存储器
fistp   memory(integer) ;复制st的值,并转换为整型数存入存储器;st出栈
fbstp   memory(BCD)     ;复制st的值,并转换为BCD码存入存储器;st出栈
fxch    (none)          ;互换st和st(1)
fxch    st(num)         ;互换st和st(num)

;///////////////////////////////////////////////////////////////////////////////
;///                  浮点型加法指令
;//////////////////////////////////////////////////////////////////////////////
;助记符 操作数          功能
fadd    (none)          ; 将st和st(1)出栈;将两个值相加;并将它们的和入栈
fadd    st(num),st      ;将st(num)和st相加;用和替换st(num)
fadd    st,st(num)      ;将st和st(num)相加;用和替换st
fadd    memory(real)    ; 将st和存储器中的实型数相加;用和替换st
fiadd   memory(integer) ;将st和存储器中的整型数相加,用和替换st
faddp   st(num),st      ;将st(num)和st相加,用和来替换st(num),将st出栈
  
  
;//////////////////////////////////////////////////////////////////////////////
;///                  浮点型 乘法指令
;//////////////////////////////////////////////////////////////////////////////

; 助记符 操作数          功能
fmul     (none)          ;将st和st(1)出栈;并将它们的值相乘;乘积人栈
fmul     st(num),st      ;将st(num)和st相乘;用乘积来替换st(num)
fmul     st,st(num)      ;将st和st(num)相乘;用乘积来替换st
fmul     memory(real)    ;将st和存储器中的实型数相乘;用乘积来替换st
fimul    memory(integer) ;将st和存储器中的整型数相乘,用乘积来替换st
fmulp    st(num),st      ;将st(num)和st相乘;乘积来替换st(num);并将st出栈


;助记符 操作数          功能
fsub   (none)          ;将st和st(1)出栈,计算st(1)减st的值;将差入栈
fsub   st(num),st      ;计算st(num)减st的值;用差值替换st(num)
fsub   st,st(num)      ;计算st减st(num)的值;用差值来替换st
fsub   memory(real)    ;计算st减存储器中的实型数的值;用差值来替换st
fisub memory(integer) ;计算st减存储器中的整型数的值;用差值替换st
fsubp st(num),st      ; 计算st(num)减st的值;用差值替换st(num);将st出栈
fsubr (none)          ;将st和st(1)出栈;计算st减st(1)的 值;将差值入栈
fsubr st(num),st      ; 计算st减st(num)的值,用差值替换st(num)
fsubr st,st(num)      ; 计算st(num)减st的值,用差值来替换st
fsubr memory(real)    ; 计算存储器中的实型数值减st的值,用差值替换st
fisubr memory(integer) ;计算存储器中的整型数值减st的值;用差值替换st
fsubrp st(num),st      ;计算st减st(num)的值,用差值替换st(num);将st出栈

;//////////////////////////////////////////////////////////////////////////////
;///                     浮点型除法指令
;//////////////////////////////////////////////////////////////////////////////
;助记符 操作数          功能
fdiv    (none)         ;将st和st(1)出栈;计算st(1)/st的值;并将商入栈
fdiv    st(num),st     ;计算st(num)/st的值;用商来替换st(num)
fdiv    st,st(num)     ;计算st/st(num)的值;用商来替换st
fdiv    memory(real)   ;计算st/存储器中的实型数;用商来替换st
fidiv   memory(integer);计算st/存储器中的整型数;用商来替换st
fdivp   st(num),st     ;计算st(num)/st的值;用商来替换st(num);并将st出栈
fdivr   (none)         ;将st和st(1)出栈;计算st/st(1)的值;并将商入栈
fdivr   st(num),st     ;计算st/st(num)的值;用商来替换st(num)
fdivr   st,st(num)     ;计算st(num)/st的值;用商来替换st
fdivr   memory(real)   ;计算存储器中的实型数/st;商来替换st
fidivr memory(integer);计算存储器中的整型数/st;用商来替换st
fdivrp st(num),st     ;计算st/st(num)的值,用商来替换st(num);并将st出栈

;//////////////////////////////////////////////////////////////////////////////
;///                      附 加的浮点型指令
;/////////////////////////////////////////////////////////////////////////////
; 助记符 操作数          功能
fabs    (none)         ;st := |st|(绝对值)
fchs    (none)         ;st := -st(相反数)
frndint (none)         ;对st取整
fsqrt   (none)         ;用st的平方根来替换st

;/////////////////////////////////////////////////////////////////////////////
;///                      浮点型比较指令
;////////////////////////////////////////////////////////////////////////////
;助记符 操作数          功能
fcom    (none)          ;比较st和st(1)
fcom    st(num)         ;比较st和st(num)
fcom    memory(real)    ;比较st和存储器中的实型数
ficom   memory(integer) ;比较st和存储器中的整型数
ftst    (none)          ;比较st和0.0
fcomp   (none)          ;比较st和st(1);然后出栈
fcomp   st(num)         ;比较st和st(num);然后出栈
fcomp   memory(real)    ;比较st和存储器中的实型数;然后出栈
fcomp   memory(integer) ;比较st和存储器中的整型数;然后出栈
fcompp (none)          ;比较st和st(1);然后两次出栈

;////////////////////////////////////////////////////////////////////////////
;///                    混 合浮点型指令
;////////////////////////////////////////////////////////////////////////////
;助记符 操作数          功能
fstsw   memory WORD     ;复制状态寄存器到存储器字
fstsw   ax              ;复制状态寄存器到ax寄存器
fstcw   memory WORD     ;复制控制字寄存器到存储器
fldcw   memory WORD     ;复制存储器字到控制字寄存器

文章作者: 2356
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 2356 !