Intel汇编-基本浮点运算
# An example of basic FPU math
#
# 基本浮点运算
#
# FADD 浮点加法
# FDIV 浮点除法
# FDIVR 反向浮点除法
# FMUL 浮点乘法
# FSUB 浮点减法
# FSUBR 反向浮点减法
#
# 每一个都具有单独的指令和格式,可以生成6个可能的功能,取决于执行的确切操作是什么。
#
# FADD source # 内存中的32位或者64位值和ST0相加
# FADD %st(x), %st(0) # st(x) 和 st(0) 相加,结果存储到st(0)中
# FADDP %st(0), %st(x) # st(0) 和 st(x) 相加,结果存储到st(x)中,并且弹出st(0)
#
# 操作完成后如何处理寄存器(要么保留,要么弹出堆栈)。跟踪FPU寄存器值的状态很重要。
# 有时候复杂的数学操作会执行多个操作,这些操作把各种值存储到不同的寄存器中,这时跟踪状态是困难的。
#
#
# ((43.65 / 22) + (76.34 * 3.1)) / ((12.43 * 6) - (140.2 / 94.21))
#
#
.section .data
value1:
.float 43.65
value2:
.int 22
value3:
.float 76.34
value4:
.float 3.1
value5:
.float 12.43
value6:
.int 6
value7:
.float 140.2
value8:
.float 94.21
output:
.asciz "The result is %f\n"
.section .text
.globl main
main:
nop
finit
flds value1
fidiv value2
flds value3
flds value4
fmul %st(1), %st(0)
fadd %st(2), %st(0)
flds value5
fimul value6
flds value7
flds value8
fdivrp
fsubr %st(1), %st(0)
fdivr %st(2), %st(0)
subl $8, %esp
fstpl (%esp)
push $output
call printf
add $12, %esp
push $0
call exit
# gcc -g -o 04 04-fpmath.s -m32
#
# The result is 3.264907
#
Intel汇编-基本浮点运算相关推荐
- linux ATT汇编 与 Intel汇编 语法格式对比
由于绝大多数的国内程序员以前只接触过Intel格式的汇编语言,很少或几乎没有接触过AT&T汇编语言,虽然这些汇编代码都是Intel风格的.但在Unix和Linux系统中,更多采用的还是AT&a ...
- 一步步编写操作系统 78 intel汇编与ATT汇编语法区别
本节咱们介绍下intel汇编语法和at&t汇编语法的区别. 以上表中未列出这两种语法在内存寻址方面的差异,个人觉得区别还是很大的,下面单独说说. 在Intel语法中,立即数就是普通的数字,如果 ...
- ATT与Intel汇编代码格式
ATT(根据"AT&T"命名的,AT&T是运营贝尔实验室多年的公司)格式汇编代码,是GCC.OBJDUMP和其他一些工具的默认格式.其他一些编程工具,包括Micro ...
- ATT和Intel汇编杂谈
作者:小安 博客地址:我的博客 今天,我们来梳理一下这常见的x86/x64平台下汇编语言的格式. 前言 一个高级语言写的程序会编译为二进制文件,但是其中有一个步骤是反汇编,这也是人们所能可以理解最底层 ...
- Intel汇编程序设计-高级过程(上)
第八章 高级过程 8.1 简介 本章主要讲: 堆栈框架 变量作用域和生存期 对战参数的类型 通过传递值或者传递引用来传递参数 在堆栈上创建和初始化局部变量 递归 编写多模块程序 内存模型和语言关键字 ...
- Intel汇编程序设计-整数算术指令(下)
7.5 扩展加法和减法 扩展精度的假发和减法是指任意尺寸大小数字的加法和减法.例如要求你写一个C++程序,把两个1024位的整数相加,解决方案可不是那么简单!但在汇编语言中,ADC(带进位加)指令和 ...
- Intel汇编程序设计-整数算术指令(上)
第七章 整数算术指令 7.1 简介 每种汇编语言都有进行操作数移位的指令,移位和循环移位指令在控制硬件设备.加密数据,以及实现高速的图形操作时特别有用.本章讲述如何进行移位和循环移位操作以及如何使用移 ...
- intel 汇编中断解释
汇编中的10H中断是由BIOS对显示器和屏幕所提供的服务程序.使用int 10h服务程序时,必须先指定ah寄存器为以下显示服务编号之一,以指定需要调用的功用. 显示服务 (Video Service: ...
- 【Intel汇编指令集】寄存器
目录 1.通用寄存器 2.段寄存器 3.标志寄存器 4.指令指针寄存器 5.浮点寄存器 6.MMX寄存器. 7.XMM寄存器 8.YMM寄存器 9.ZMM寄存器 指令集手册下载:Intel® 64 a ...
最新文章
- 大哥大——传呼机的年代
- C#字符串格式化说明(String.Format) (zz.IS2120)
- 牛客(35)数组中的逆序对
- modnet是一个无需绿幕,扣人像,笔记本上跑到10-20帧
- id 重启event_windows 2003 R2 系统自动重启了. event ID 6008
- 读书笔记——计算机组成原理
- 势高,则围广:TiDB 的架构演进哲学
- iOS开发第三方篇——友盟的哪些坑
- 算法竞赛入门经典 aabb
- 学习总结5.0 Linux tar打包命令
- 计算机考研复试经典考题汇总(一次刷新世界观)
- react学习的一些网站
- ffmpeg添加mpeg ps流的pcm的解码支持
- 关于U盘中毒,文件全变成快捷方式
- JS前端数据多条件筛选
- 当@PathVariable遇上了.
- traits简单介绍
- 计算机德育教育课题,德育教育研究课题有哪些研究方向
- Windows Server 2008 R2版本区分
- 微信小程序自定义组件开发即组件间通信详解
热门文章
- 毛哥的快乐生活(20) 使用Servlet打造多版本通知网站
- Spark Stream 流式处理
- 别再用 System.currentTimeMillis 统计耗时了,太 Low,试试 Spring Boot 源码在用的 StopWatch吧,够优雅
- 【自然语言处理】聊聊曝光误差(Exposure Bias)怎么被解决的
- JS 中 valueOf() 方法的详解
- 华清远见重庆中心—JAVA高级技术总结/个人总结
- 读《大型多人在线游戏开发》笔记
- 【用户画像】Clickhouse位图函数实践总结
- 用ObjectArx进行CAD二次开发的准备工作
- Word批量设置表格宽度自动适应页面宽度