我进入汇编编程的第二天,我正试图创建一个函数来平方一个数字
global square: ; do not need _start because gcc has one already
section .text
square:
mov rax, rsi; remember: first argument is always in rsi. (Order is: rsi, rdi, rdx, tcx, r8, r9)
mul rsi ; rax = rax * rsi (remember: accumulator is the implicit argument)
ret ; returns the value in accumulator
主要的c:
#include <stdio.h>
long int square(long int);
int main() {
for (long int i = 1; i < 6; i++) {
printf("%li", square(i));
}
return 0;
}
结果:
7556421251850319424-3765949904798924751-3765949904798924751-3765949904798924751-3765949904798924751
预期:
1491625
我错过了什么?