汇编系列之搭建环境

一.欢迎来到我的酒馆

汇编语言是一门依赖处理器架构和指令集的编程语言。在这个章节里,我们主要关注intel奔腾32位的处理器。本章节,你需要准备:

  • 一台PC
  • 一个Linux操作系统
  • 一个NASM汇编语言程序编辑器

现在有很多优秀的汇编语言编辑器:

  • Microsoft Assembler(MASM)
  • Borland Turbo Assembler(TASM)
  • The GNU Assembler(GAS)

这里我们选用NASM,他有很多优点:

  • 免费。你可以从网站上免费下载。
  • 丰富的文档,你可以从网上获取很多信息。
  • 跨平台,既可以在Windows下使用,也可以在Linux下使用。

二.安装NASM

2.1如果你在安装Linux的时候选择了开发者工具版本,那么NASM自动包含在了Linux系统里面,你不需要下载和安装就可以使用。按照下面的步骤检测你的Linux系统是否安装了NASM:

  • 打开Linux命令行窗口
  • 输入命令: whereis nasm
  • 如果已经安装了NASM,此时会提示NASM的安装路径,如:nasm:/usr/bin/nasm。如果没有安装,则会显示nasm;这时候你需要安装nasm。

2.2 Linux下,按照下面的步骤安装NASM:

  • 访问NASM的官网下载最新的NASM版本,NASM官网http://www.nasm.us/

  • 下载Linux源文件档案,NASM的版本信息写在文件夹名上,如:nasm-2.16.02rc1.tar nasm的版本为2.16。

  • 将下载的档案解压,解压文件会解压到一个子文件夹内,如:nasm-X.XX

  • 转到这个解压后的子目录:nasm-x.xx 然后输入:./configure这条命令会找到c。编译器然后创建makefile。

  • 输入make命令构建nasm。

  • 输入make install命令,将nasm安装到/usr/local/bin目录下,并且安装man手册。

2.3 Windows下安装NASM:

在这里插入图片描述
在官网下载的速度很慢,这里可以下载好了的nasm:win64 nasm2.16
下载、解压完成后的nasm程序:
在这里插入图片描述
这时候,需要将nsam添加到PATH系统环境变量,可以在任意路径使用nasm和ndisasm工具,添加PATH系统环境变量请查看我的博客:Windows下配置MinGW64那一篇博客。

2.3.2 将下面的代码保存至hello.asm:

section	.text
   global _start     ;must be declared for linker (ld)
	
_start:	            ;tells linker entry point
   mov	edx,len     ;message length
   mov	ecx,msg     ;message to write
   mov	ebx,1       ;file descriptor (stdout)
   mov	eax,4       ;system call number (sys_write)
   int	0x80        ;call kernel
	
   mov	eax,1       ;system call number (sys_exit)
   int	0x80        ;call kernel

section	.data
msg db 'Hello, world!', 0xa  ;string to be printed
len equ $ - msg     ;length of the string

2.4 Windows下编译.asm汇编文件
2.4.1使用nasm工具编译.asm汇编源文件为.o文件:

nasm -f elf hello.asm 

2.4.2 连接.o文件并生成一个可执行文件:

ld -m elf_i386 -s -o hello.exe hello.o

2.4.3 执行hello.exe文件:

.\hello.exe

ld工具需要安装mingw64,安装mingw64的过程请查看我的博客:Window下安装MinGW64

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值