NASM x64数组中的最大值

时间:2017-01-22 00:42:26

标签: nasm

如果你能给我一些建议,我会非常感激,因为我很长时间都在努力,而且我不知道为什么打印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

0 个答案:

没有答案