码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-03-31 19:40:00      阅读:460      评论:0      收藏:0      [点我收藏+]

标签:sse   ESS   一段   blog   roo   details   color   root   进入   

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.执行结果如下

[root@CentOs64-7 Assembly]# ./HelloWorld.out 
Hello, world!

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

 

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

标签:sse   ESS   一段   blog   roo   details   color   root   进入   

原文地址:https://www.cnblogs.com/ToBeExpert/p/10632578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!