linux编写汇编

简介: linux编写汇编

安装汇编工具

apt install nasm

编写汇编代码

创建文件 huibian.asm

[section .data]     ;数据在此
strHello  db  "Hello, world",0Ah
STRLEN    equ $ - strHello
[section .text]     ;代码在此
global _start     ;必须导出_start这个入口,以便让链接器识别
_start:
  mov edx,STRLEN
  mov ecx,strHello
  mov ebx,1
  mov eax,4   ;sys_write
  int 0x80    ;系统调用
  mov ebx,0   
  mov eax,1   ;sys_exit
  int 0x80    ;系统调用

运行

编译,生成 待链接文件

!!!! 注意 elf64 根据 你的机器而改变

我是用的是 64 位 x86 机器 所以是 elf64


32位 x86 是 elf

其他的我也不知道

nasm -f elf64 huibian.asm -o hello.o

链接 .o 文件

ld -s hello.o -o hello

执行汇编

./hello


拓展

查看 可连接 .o 文件的 变量表

nm -o -v  hello.o


反汇编 查看 .o 文件的源代码

大写 -S

objdump -S hello.o

查看 .o 文件的机器码

小写 -s

objdump -s hello.o



相关文章
|
Linux C语言
RISC-V Linux汇编启动过程分析
RISC-V Linux汇编启动过程分析
|
9月前
|
存储 安全 Linux
Linux内嵌汇编
Linux内嵌汇编
101 0
|
Linux C语言 芯片
Linux系统中使用汇编初始化外设方法
大家好,我是ST。 今天主要和大家聊一聊,如何使用汇编语言来实现芯片外设的初始化功能。
194 0
Linux系统中使用汇编初始化外设方法
|
存储 移动开发 前端开发
linux内核1-GNU汇编入门_X86-64&ARM(下)
linux内核1-GNU汇编入门_X86-64&ARM(下)
|
存储 前端开发 rax
linux内核1-GNU汇编入门_X86-64&ARM(上)
linux内核1-GNU汇编入门_X86-64&ARM
|
Linux 编译器 C语言
『Linux从入门到精通』第 ⑦ 期 - Linux编译器——gcc/g++(预处理、编译、汇编、链接)
『Linux从入门到精通』第 ⑦ 期 - Linux编译器——gcc/g++(预处理、编译、汇编、链接)
162 0
|
Linux 数据安全/隐私保护
Linux内核源码分析--内核启动之(2)Image内核启动(汇编部分)(Linux-3.0 ARMv7) 【转】
转自:http://blog.chinaunix.net/uid-25909619-id-4938389.html  在完成了zImage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin版本Image),具体的入口可以在arch/arm/kernel/vmlinux.
978 0