我目前正在学习一门课程,要求我编写汇编代码,准确地说是 x86-64 AT&T 语法汇编代码。下面是 ac 文件,其中包含我必须编写其汇编代码的函数“bubble”的函数定义。
#include<stdio.h>
#include<stdlib.h>
void bubble(int* arr, int len);
int main(){
int n;
scanf("%d", &n);
int* arr = malloc(sizeof(int)*n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
bubble(arr, n);
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
}
Run Code Online (Sandbox Code Playgroud)
下面是函数 bubble 的汇编代码,
.global bubble
.text
bubble:
movq $-1, %rcx
.L1:
incq %rcx
movl 4(%rdi,%rcx,4), %eax
cmpl (%rdi,%rcx,4), %eax
jge .T1
movl (%rdi,%rcx,4), %eax
movl …Run Code Online (Sandbox Code Playgroud)