运行程序的环境
sudo lsb_release -a
看到操作系统是Ubuntu 22.04 LTS
。
sudo uname -r
看到内核版本是5.15.0-86-generic
。
sudo as --version
看到as
的版本是2.38
。
sudo ld --version
看到ld
的版本是2.38
。
sudo gcc --version
看到gcc
版本是11.2.0
。
sudo gdb --version
看到gdb
版本是12.1
。
计算平方
exponentfunc.s
里边的内容如下:
.global exponent
.type exponent,@function.section .text
exponent:pushq %rbpmovq %rsp,%rbp# 没有明白这行代码的作用subq $0,%rspmovq $1,%raxmovq %rsi,-8(%rbp)mainloop:mulq %rdidecq -8(%rbp)jnz mainloopcomplete:movq %rbp,%rsppopq %rbpret
runexponent.s
里边的内容如下:
.global _start
.section .text
_start:movq $3,%rdimovq $2,%rsicall exponentmovq %rax,%rdimovq $60,%raxsyscall
sudo as exponentfunc.s -g -o exponentfunc.o
进行汇编,sudo as runexponent.s -g -o runexponent.o
进行汇编,sudo ld exponentfunc.o runexponent.o -g -o runexponent
进行链接,sudo ./runexponent
执行,echo $?
查看返回值。