Linux系统上64位AT&T汇编语言多个源文件计算两个数的平方
2023-12-15 05:20:49
运行程序的环境
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 %rbp
movq %rsp,%rbp
# 没有明白这行代码的作用
subq $0,%rsp
movq $1,%rax
movq %rsi,-8(%rbp)
mainloop:
mulq %rdi
decq -8(%rbp)
jnz mainloop
complete:
movq %rbp,%rsp
popq %rbp
ret
runexponent.s
里边的内容如下:
.global _start
.section .text
_start:
movq $3,%rdi
movq $2,%rsi
call exponent
movq %rax,%rdi
movq $60,%rax
syscall
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 $?
查看返回值。
文章来源:https://blog.csdn.net/qq_42108074/article/details/129017340
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!