ATT汇编 基本数学功能

2024-06-14 15:58
文章标签 功能 基本 数学 汇编 att

本文主要是介绍ATT汇编 基本数学功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


加法:

.section .data
val:

.quad 3481219651

val1:

.quad 6678934517

output:

.asciz "The res is %qd\n"


.section .text
.globl _start

_start:

movl val, %eax

movl val + 4, %ebx


movl val1, %ecx

movl val1 + 4, %edx


addl %eax, %ecx

adcl %ebx, %edx


pushl %edx

pushl %ecx

pushl $output

call printf


movl $1, %eax

movl $0, %ebx

int $0x80



减法:

.section .data
val:

.quad 3481219651

val1:

.quad 6678934517

output:

.asciz "The res is %qd\n"


.section .text
.globl _start
_start:

movl val1, %eax

movl val1 + 4, %ebx


movl val, %ecx

movl val + 4, %edx


subl %eax, %ecx

sbbl %ebx, %edx


pushl %edx

pushl %ecx

pushl $output

call printf


movl $1, %eax

movl $0, %ebx

int $0x80



乘法:

1.mul 指令只能用于无符号整数:

.section .data
val:

.int 316722

val1:

.int 129907

result:

.quad 0

output:

.asciz "The res is %qd\n"


.section .text
.globl _start
_start:

movl val, %eax

mull val1


movl %eax, result

movl %edx, result + 4


pushl result + 4

pushl result

pushl $output

call printf


movl $1, %eax

movl $0, %ebx

int $0x80


2.imul 可用于带符号和无符号整数:

imul des                       ( AL,AX,EAX 中为隐含操作数,乘积结果被存放在 AX寄存器 or 

DX : AX 寄存器对 or EDX : EAX 寄存器对中 )

imul src, des              ( src 可以是 16 or 32 位的寄存器 or 内存中, des 必须是 16 or 32 位的通用寄存器 )

imul multi, src, des ( multi 与 src 的快速乘法的结果存放在 des 中 )


.section .data
val:

.int 10

val1:

.int 12

val2:

.int 100

output:

.asciz "The res is %qd\n"


.section .text
.globl _start
_start:

movl val, %eax

movl val1, %ebx

imull %eax, %ebx


movl val2, %edx

imull $4, %edx, %ecx


movl $1, %eax

movl $0, %ebx

int $0x80


除法:

1.无符号除法

被除数被除数长度余数
AX16位ALAH
DX : AX32位AXDX
EDX : EAX64位EAXEDX

div divisor


.section .data
dividend:

.quad 4537124

divisor:

.int 35

quotient:

.int 0

remainder:

.int 0

output:

.asciz "quotient is %d, remainder is %d\n"


.section .text
.globl _start
_start:

movl dividend, %eax

movl dividend + 4, %edx


divl divisor


movl %eax, quotient

movl %edx, remainder


pushl remainder

pushl quotient

pushl $output

call printf


addl $12, %esp


movl $1, %eax

movl $0, %ebx

int $0x80


2.带符号除法 idiv divisor 类似


这篇关于ATT汇编 基本数学功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060854

相关文章

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.