CentOS7写汇编并编译运行汇编代码

Posted tobeexpert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7写汇编并编译运行汇编代码相关的知识,希望对你有一定的参考价值。

1.下载nasm编译器

  下载地址是https://www.nasm.us/pub/nasm/releasebuilds/

wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz

2.解压安装nasm

tar -xvzf nasm-2.14.tar.gz 

3.进入到nasm的解压目录中编译并安装nasm

cd nasm-2.14         #进入nasm的解压目录

./configure             #配置

make       #编译

make install   #安装
    

4.一段可以输出Hello World的汇编代码

section .data                           ;section declaration
msg     db      "Hello, world!",0xA     ;our dear string
len     equ     $ - msg                 ;length of our dear string
section .text                           ;section declaration
                       ;we must export the entry point to the ELF linker or
   global _start       ;loader. They conventionally recognize _start as their
                       ;entry point. Use ld -e foo to override the default.
_start:
;write our string to stdout
       mov     eax,4   ;system call number (sys_write)
       mov     ebx,1   ;first argument: file handle (stdout)
       mov     ecx,msg ;second argument: pointer to message to write
       mov     edx,len ;third argument: message length
       int     0x80    ;call kernel
;and exit
       mov     eax,1   ;system call number (sys_exit)
       xor     ebx,ebx ;first syscall argument: exit code
       int     0x80    ;call kernel

  将它保存为HelloWorld.s文件。

5.编译该汇编代码

nasm -f elf64 HelloWorld.s -o HelloWorld.o

6.链接生成可执行文件

ld -s HelloWorld.o -o HelloWorld.out

7.执行程序

./HelloWorld.out

8.执行结果如下

[[email protected]7 Assembly]# ./HelloWorld.out 
Hello, world!

  转载自:https://blog.csdn.net/weiyuanzhuo/article/details/52382611

 

以上是关于CentOS7写汇编并编译运行汇编代码的主要内容,如果未能解决你的问题,请参考以下文章

程序编译流程

汇编与反汇编

C从源码到运行发生了哪些事

java的代码是汇编语言吗?

c语言编译

keil查看汇编代码