CentOS8-NASM-汇编环境搭建

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

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

我采用的环境搭配是汇编器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来更加直观的感受,下次见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值