汇编语言带C循环,如何将此C for循环转换为汇编语言?
我需要编写一个程序集程序,在-2 < = x < = 8的范围内查找x^3 -14x^2 + 56x -64的最大值,并且最大值应在其中一个寄存器中该程序。如何将此C for循环转换为汇编语言?
我用C编写了代码,但是我不知道如何将它自己转换成Assembly。我现在很困惑。顺便说一句,我必须自己转换它。我无法使用gcc转换为程序集。这是用于SPARC
#include
int main()
{
int i;
int ans;
for (i = -2; i < 9; i++){
ans = (i * i * i) - (14 * i * i) + (56 * i) - 64;
}
}
我试图编写程序集。有人可以批评它,并告诉我,如果我在正确的方向。另外,我将如何去测试最大数量?
main:
save %sp, -96, %sp
ba test
mov -2, %a_r
loop:
mov %a_r, %o0 !a_r moved into o0
mov %a_r, %o1 !a_r moved into o1
call .mul !they are multiplied and stored in o0
call .mul !they are multiplied again and stored in o0
mov %o0, r0 !results stored in r0
mov %a_r, %o0 !a_r moved into o0 and o1
mov %a_r, %o1
call .mul !they are multiplied and stored in o0
mov 14, %o1
call .mul !o0 result is multiplied by 14 and stored in r1
mov %o0, r1
mov 56, %o0 !56 moved into o0
mov %a_r, %01 !a_r moved into o1
call .mul !they are multiplied and stored in r2
mov %o0, r2
Sub r0,r1,r0 !r0-r1 stored in r0
Add r0,r2,r0 !r0+r2 stored in r0
Sub r0,64,r0 !r0-64 stored in r0
add %a_r, 1, %a_r !a_r + 1
test:
cmp %a_r %b_r ! a_r<=8?
ble loop
+1
[你有什么试过?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) –
2013-02-17 00:13:39
+3
'gcc -S prog.c -o prog.s'是一个开始。你可以研究生成的程序集来获得一些想法。 –
2013-02-17 00:14:32
+0
是x86汇编,MIPS,ARM还是什么? –
2013-02-17 00:38:20
汇编语言带C循环,如何将此C for循环转换为汇编语言?相关推荐
- 怎么用汇编语言转换c语言程序设计,C语言是如何转换成汇编语言的6个步骤带你解析...
大家都知道计算机只能处理和识别二进制指令,而我们利用各种高级编程语言所编写的程序,要经过一些列的处理步骤,最终转变为汇编指令,再最后转变为机器指令. C语言 以上这些转变是如何发生的就属于大名鼎鼎的& ...
- 【汇编语言与计算机系统结构笔记08】如何实现循环(Loops),gcc历史上经历了多种转换模式(微体系结构角度解释),Switch语句,跳转表
本次笔记内容: 09.控制流-2 文章目录 练习题:条件转移指令局限性 如何实现循环(Loops) "Do-While"循环实例 "While"循环版本 &qu ...
- c语言for循环的第三句,for循环语句的用法
for循环有三种结构:列表for循环,不带列表for循环和类C风格for循环. do和done之间的命令成为循环体,执行次数和list列表中常熟或字符串的个数相同.for循环,首相是将in后list的 ...
- 程序语言python循环_Python语言程序设计之一--for循环
最近学到了Pyhton中循环这一章.之前也断断续续学过,但都只是到了函数这一章就停下来了,写过的代码虽然保存了下来,但是当时的思路和总结都没有记录下来,很可惜.这次我开通了博客,就是要把这些珍贵的学习 ...
- java中循环语句_Java语法基础之循环结构语句详解
一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...
- html gif无限循环播放,【GIF】无限循环GIF太神奇,有人知道这是怎么做的吗?
今天橘子君给大家介绍一位土耳其摄影艺术家Erdal Inci的GIF作品↓ 有没有感觉是无限循环的?没错,无限循环的动态影像作品,现在使用GIF也能办到! 土耳其摄影艺术家 Erdal Inci 把运 ...
- while循环、repeat循环、leave语句、loop循环、iterate语句
WHILE循环 语法: [begin_label:] WHILE search_condition DO statement_list; [begin_label]; 1 2 3 语义:首先判断循环开 ...
- java循环控制语句next_VBA中for next循环语句有哪些?
VBA中for next循环语句有哪些?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! VBA中for next循环语句 ...
- 为什么双层循环 冒泡排序_冒泡排序的双重循环理解
主要说一下冒泡排序的一些关键地方的个人理解,比如算法思想,两个循环的作用意义,中间循环变量范围的确定等. 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面 ...
最新文章
- C++知识点52——多重继承
- 819 c语言程序设计,2018年大连海洋大学计算机科学与技术819高级语言程序设计(C语言)之C程序设计考研核心题库...
- linux centos7 替换yum源
- 在 npm script 中使用环境变量
- LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
- python的ide怎么安装_python安装以及IDE的配置教程
- div+css 定位浅析
- Apache 模块 mod_cache应用
- SXF python
- 是潜意识音频优于催眠
- yourshelf是什么意思中文_[英语shelf的中文是什么意思]英语shelf的中文是什么意思...
- Android 仿微信录制短视频(不使用 FFmpeg)
- nginx正向代理解决跨域问题
- supserset权限管理
- N、Z、Q、R 分别代表什么
- 网罗全网最优质AI社区!
- C语言作业第二次总结
- js实现微博、微信分享
- 使用css3中的var()实现改变scss的变量值
- 在Ubuntu Linux终端安裝和使用ChatGPT,原来这么简单!