我需要编写一个程序集程序,在-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循环转换为汇编语言?相关推荐

  1. 怎么用汇编语言转换c语言程序设计,C语言是如何转换成汇编语言的6个步骤带你解析...

    大家都知道计算机只能处理和识别二进制指令,而我们利用各种高级编程语言所编写的程序,要经过一些列的处理步骤,最终转变为汇编指令,再最后转变为机器指令. C语言 以上这些转变是如何发生的就属于大名鼎鼎的& ...

  2. 【汇编语言与计算机系统结构笔记08】如何实现循环(Loops),gcc历史上经历了多种转换模式(微体系结构角度解释),Switch语句,跳转表

    本次笔记内容: 09.控制流-2 文章目录 练习题:条件转移指令局限性 如何实现循环(Loops) "Do-While"循环实例 "While"循环版本 &qu ...

  3. c语言for循环的第三句,for循环语句的用法

    for循环有三种结构:列表for循环,不带列表for循环和类C风格for循环. do和done之间的命令成为循环体,执行次数和list列表中常熟或字符串的个数相同.for循环,首相是将in后list的 ...

  4. 程序语言python循环_Python语言程序设计之一--for循环

    最近学到了Pyhton中循环这一章.之前也断断续续学过,但都只是到了函数这一章就停下来了,写过的代码虽然保存了下来,但是当时的思路和总结都没有记录下来,很可惜.这次我开通了博客,就是要把这些珍贵的学习 ...

  5. java中循环语句_Java语法基础之循环结构语句详解

    一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...

  6. html gif无限循环播放,【GIF】无限循环GIF太神奇,有人知道这是怎么做的吗?

    今天橘子君给大家介绍一位土耳其摄影艺术家Erdal Inci的GIF作品↓ 有没有感觉是无限循环的?没错,无限循环的动态影像作品,现在使用GIF也能办到! 土耳其摄影艺术家 Erdal Inci 把运 ...

  7. while循环、repeat循环、leave语句、loop循环、iterate语句

    WHILE循环 语法: [begin_label:] WHILE search_condition DO statement_list; [begin_label]; 1 2 3 语义:首先判断循环开 ...

  8. java循环控制语句next_VBA中for next循环语句有哪些?

    VBA中for next循环语句有哪些?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! VBA中for next循环语句 ...

  9. 为什么双层循环 冒泡排序_冒泡排序的双重循环理解

    主要说一下冒泡排序的一些关键地方的个人理解,比如算法思想,两个循环的作用意义,中间循环变量范围的确定等. 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面 ...

最新文章

  1. C++知识点52——多重继承
  2. 819 c语言程序设计,2018年大连海洋大学计算机科学与技术819高级语言程序设计(C语言)之C程序设计考研核心题库...
  3. linux centos7 替换yum源
  4. 在 npm script 中使用环境变量
  5. LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
  6. python的ide怎么安装_python安装以及IDE的配置教程
  7. div+css 定位浅析
  8. Apache 模块 mod_cache应用
  9. SXF python
  10. 是潜意识音频优于催眠
  11. yourshelf是什么意思中文_[英语shelf的中文是什么意思]英语shelf的中文是什么意思...
  12. Android 仿微信录制短视频(不使用 FFmpeg)
  13. nginx正向代理解决跨域问题
  14. supserset权限管理
  15. N、Z、Q、R 分别代表什么
  16. 网罗全网最优质AI社区!
  17. C语言作业第二次总结
  18. js实现微博、微信分享
  19. 使用css3中的var()实现改变scss的变量值
  20. 在Ubuntu Linux终端安裝和使用ChatGPT,原来这么简单!

热门文章

  1. 杀死linux-zombie僵尸进程
  2. java观察者设计模式
  3. linux下sudo权限管理
  4. MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedListT结果集
  5. 查看Linux并发连接数
  6. centos搭建ftp环境
  7. SAP NetWeaver 业务运作面向服务平台 介绍
  8. python3 nmap 函数简介
  9. linux socket 中的backlog参数介绍
  10. shell 数组排序