CentOS8-NASM-汇编环境搭建

  • Post author:
  • Post category:其他


搞了很久才搭建成功,记录一下

建议刚入门的同学学习的时候,尽量先选择一种汇编格式走下去,不然很容易搞混,打击自信心。

我采用的环境搭配是汇编器NASM、链接器GCC中的ld、系统64位的CentOS8



gcc

一般linux系统中都会自带的有gcc,而gcc中包含链接器ld,如果后面提示版本信息错误请更新gcc版本



nasm

按照官网的提示,如果需要使用yum安装nasm的话,将nasm.repo源安装到yum的源目录下,CentOS8的yum源的位置为

/etc/yum.repos.d

,nasm.repo文件内容如下

[nasm]
name=The Netwide Assembler
baseurl=http://www.nasm.us/pub/nasm/stable/linux/
enabled=1
gpgcheck=0

[nasm-testing]
name=The Netwide Assembler (release candidate builds)
baseurl=http://www.nasm.us/pub/nasm/testing/linux/
enabled=0
gpgcheck=0

[nasm-snapshot]
name=The Netwide Assembler (daily snapshot builds)
baseurl=http://www.nasm.us/pub/nasm/snapshots/latest/linux/
enabled=0
gpgcheck=0

然后使用

yum install nasm

即可安装,

nasm -v

查看版本信息



demo

  1. 编写汇编文件
  2. 使用nasm汇编器进行汇编生成目标文件
  3. 使用gcc的链接器ld对目标文件进行链接生成可执行文件

简单的汇编demo

section .data

section .text

global main

main:
    mov eax, 1
    inc eax
    mov ebx, eax

mov eax, 1
mov ebx, 0
int 80h

编译链接命令

# 32 bit version
# nasm -f elf demo.s -o demo.o
# ld -e main -m elf_i386 demo.o -o demo

# 64 bit version
# 编译命令,执行后生成目标文件
nasm -f elf64 demo.s -o demo.o
# 链接命令,执行后生成可执行文件
ld -e main -m elf_x86_64 demo.o -o demo

然后使用

./demo

就可以执行了,不过应该是没什么感觉的,可以使用调试工具gdb来更加直观的感受,下次见。



版权声明:本文为qq_40522155原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。