`
dowhathowtodo
  • 浏览: 777511 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多


汇编语言浮点数指令集

;////////////////////////////////////////////////////////////////////////////////
;//// 浮点数载入指令
;///////////////////////////////////////////////////////////////////////////////
;助记符 操作数 功能
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 ;复制存储器字到控制字寄存器
分享到:
评论

相关推荐

    浮点数指令

    FCU指令集,可以进行浮点数计算,方便汇编程序开发人员查阅

    汇编语言浮点型指令集

    看完了我总结出来的浮点数集,你汇编语言编程水平一定得到大大的提高

    清华大学 汇编语言程序设计 课件

    (1)汇编语言与计算机系统结构、指令集初步、数制与整数表示、浮点数表示; (2)80x86计算机组织与保护模式、X86指令系统与寻址方式、C与X86汇编、X86汇编编程; (3)MIPS汇编。 课程强调汇编语言的软硬件分界...

    IBM-PC汇编语言指令集

    IBM-PC汇编语言指令集 数据传送指令集 MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG

    汇编语言程序设计.林邦杰.陈明

    14-6 80x87指令集 14-7 范例 课后习题 第15章 连接程序 15-1 建立NASM源程序 15-2 将目标文件连接成.exe文件 15-3 显示DOS的BIOS区域数据 15-4 系统设备数据 15-5 内存容量 课后习题 附录 NASM汇编语言指令

    ARM指令集 肯定可以下载

    ARM7TDMI(-S)指令集及汇编....................................................................................................................1 ARM 处理器寻址方式...........................................

    OllyDbg汇编及分析调试器

    、Athlon 扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。 配置: 有多达百余个选项用来设置 OllyDbg 的外观和运行。 数据格式: OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCII、...

    arm指令集-中文 (ARM微控制器基础)

    ARM7TDMI(-S)指令集及汇编....................................................................................................................1 ARM 处理器寻址方式...........................................

    riscv-asm:risc-v汇编语言

    指令集和扩展名: rv32G(IMAFD_Zicsr_Zifencei) rv64G(IMAFD_Zicsr_Zifencei) C-压缩指令E-16寄存器Q-四重浮子Zfinx-X寄存器中的浮点数其中包含一个非常简单的example.rva。尝试make example $ make example./...

    Extended Brookshear Machine emulator and assembler:用于简单计算机的模拟器和汇编器,计算机科学课程的教具。-matlab开发

    该机器有 256 个 1 字节存储单元、16 个 1 字节寄存器和一个具有 16 个操作的指令集。 它可以通过在仿真器中输入机器代码或使用简单的汇编语言来编程。 模拟器使用 GUI 进行管理,通过执行位于目录顶层的 bmachine...

    CSAPP DataLab实验解决源码(亲测有效!!!)

    实现特定指令集的模拟器,或完成一些与底层计算机硬件相关的任务,如内存管理、指令执行等等。这些实验旨在加深对计算机系统的理解,提高编程技能,以及培养解决实际问题的能力。通过本次实验,我深刻体会到了位级...

    游戏编程--优化、调试

    Visual Studio .NET 2003提供了对SSE指令集的编程支持,从而允许用户在C++代码中不用编写汇编代码就可直接使用SSE指令的功能。MSDN中有关SSE技术的主题[1]有可能会使不熟悉使用SSE汇编指令编程的初学者感到困惑,...

    计算机科学丛书:计算机组成原理 [英] 艾伦·克莱门茨(Alan Clements)(2017.3出版)

    书中围绕基本概念、指令集体系结构、处理器组成和能效、存储与外设以及处理器级并行等五个核心问题将这些内容有条不紊地组织在一起,以便满足不同专业的教学需要。 中文版引进的时候综合考虑国内高校“计算机组成与...

    [SGF,SGN,SGL]易语言汇编算数类测试源码-易语言

    本模块所有汇编代码由visual studio 2013 c++编译器在开启优化,不开启CPU指令集扩展的情况下生成。 (易语言在处理 a +-*/ b(a、b都是变量)时会先转换浮点数,使得速度很慢,位运算不知道为什么也很慢) (易语言...

    Ollydbg动态监听

    启动 您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程序,或是挂接...、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。

    OllyICE,od

    、Athlon 扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。 配置: 有多达百余个(天呀!)选项用来设置 OllyDbg 的外观和运行。 数据格式: OllyDbg 的数据窗口能够显示的所有数据格式:HEX、...

    学习ARM汇编的经典参考资料

    ARM7TDMI(-S)指令集及汇编....................................................................................................................1 ARM处理器寻址方式...........................................

    郁金香VC++外挂编程全集中级篇2.1.6part02

    汇编浮点指令/浮点运行/浮点数整数转换/汇编里的指针 3.1、喊话功能 3.2、走路 3.3、 怪物过滤 3.3.1、怪物属性分析 3.3.2、怪物列表关键代码分析 3.3.3、怪物列表基址+大小 3.3.4、怪物列表编写代码 3.3.5、...

    郁金香VC++外挂编程全集中级篇2.1.3part02

    汇编浮点指令/浮点运行/浮点数整数转换/汇编里的指针 3.1、喊话功能 3.2、走路 3.3、 怪物过滤 3.3.1、怪物属性分析 3.3.2、怪物列表关键代码分析 3.3.3、怪物列表基址+大小 3.3.4、怪物列表编写代码 3.3.5、...

    郁金香VC++外挂编程全集中级篇2.1.5part01

    汇编浮点指令/浮点运行/浮点数整数转换/汇编里的指针 3.1、喊话功能 3.2、走路 3.3、 怪物过滤 3.3.1、怪物属性分析 3.3.2、怪物列表关键代码分析 3.3.3、怪物列表基址+大小 3.3.4、怪物列表编写代码 3.3.5、...

Global site tag (gtag.js) - Google Analytics