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进行投诉反馈,一经查实,立即删除!