【发布时间】:2022-01-21 19:40:00
【问题描述】:
我进入汇编编程的第二天,我正在尝试创建一个对数字求平方的函数
square.asm:
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
main.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
我错过了什么?
【问题讨论】:
标签: nasm