如果你能给我一些建议,我会非常感激,因为我很长时间都在努力,而且我不知道为什么打印288230376151711745而不是最大值。
#include <iostream>
using namespace std;
extern "C" long long max(long long [], int);
int main()
{
long long maxi;
int n = 3;
long long arr[3] = {53,434,4};
maxi = max(arr, n); // (rdi, rsi)
cout << maxi << endl;
return 0;
}
////////////////////////////////////////
global max
section .text
max:
mov rax, 0
mov rax, [rdi]
mov rbx, 0
_loop:
cmp rbx, rsi
je _end
cmp [rdi + rbx+8],rax
ja _assign
inc rbx
jmp _loop
_assign:
mov rax, [rdi + rbx+8]
inc rbx
jmp _loop
_end:
ret