【问题标题】:Declare a function in assembly在汇编中声明一个函数
【发布时间】:2015-12-16 17:34:04
【问题描述】:

我是新手,我在学校开始编程,我们的教授要求我们在汇编中实现快速排序算法。

这对我来说很困难,请你帮我一点忙。 我什至不知道如何用指针声明一个函数......


例如,C++ 中函数的原型是: void Quicksort(int* t, int size)


在我看来,我必须这样开始,但我完全不确定:

.text quicksort // it indicates that the variable belong to the quicksort function?

.size quicksort // same thing

:quicksort // it indicates that we declare a function named quicksort?

Assembly 非常难……我以前做过 C/C++ 编程,学习起来比较容易,如果你能帮我一点忙,谢谢……

【问题讨论】:

  • 这取决于汇编程序。请用汇编程序(NASM、GAS、FASM、MASM 或...)和操作系统标记您的问题。通常你不需要声明一个函数,如果它不是外部的。
  • 我认为这是基于 RISC 的。 Somes 指令:lb(加载字节),beq(如果相等,则分支),add,addi,addiu,...我什至不知道所有这些表达式是否在所有汇编程序类型中都可用
  • 抱歉,如果无法识别您正在使用的汇编程序(程序),我们将无法回答此问题。 CPU 架构不太重要。
  • 我认为是MIPS,是汇编类型吗?
  • 我们需要知道计算机程序的名称,即汇编程序,您应该使用它来汇编您应该编写的汇编代码。如果你不能回答这个问题,你需要去找你的教授寻求帮助。我们在这里无法为您提供帮助。

标签: assembly mips


【解决方案1】:

有一些基础知识需要实现。

  1. C++ 函数中的指针用于 int 数组。在 MIPS 中,你 define arrays by their addresses in memory.

  2. Functions are defined by setting up subroutine calls and using jal.

  3. 您应该已经了解快速排序算法。

如果你连一个 hello world 程序都无法运行,那么现在在这里询问是没有用的。您必须首先学习组装的基础知识。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-11
    • 2021-03-17
    • 1970-01-01
    • 2021-09-08
    • 2016-03-13
    • 2012-07-22
    • 1970-01-01
    • 2012-12-02
    相关资源
    最近更新 更多