汇编获取二进制

文章目录


AT&T

  • mov_test.s
c 复制代码
mov $0,%r8d
  • gcc -c mov_test.s 输出 mov_test.o,
  • objdump -D mov_test.o 查看 mov_test.o:
c 复制代码
mov_test.o:     file format elf64-x86-64


Disassembly of section .text:

0000000000000000 <.text>:
   0:   41 b8 00 00 00 00       mov    $0x0,%r8d
  • mov_.S
cpp 复制代码
mov %r8d,0
nop
  • 执行命令: gcc -c mov_.S 会输出 mov_.o 文件:
  • objdump -D mov_.o :
c 复制代码
mov_.o:     文件格式 elf64-x86-64

Disassembly of section .text:

0000000000000000 <.text>:
   0:   44 89 04 25 00 00 00    mov    %r8d,0x0
   7:   00 
   8:   90                      nop
  • main.c:
c 复制代码
void main() {
}
  • 执行命令: gcc -S main.c 输出文件 main.s
  • main.s:
c 复制代码
       .file   "main.c"
        .text
        .globl  main
        .type   main, @function
main:
.LFB0:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        nop
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE0:
        .size   main, .-main
        .ident  "GCC: (Uos 8.3.0.3-3+rebuild) 8.3.0"
        .section        .note.GNU-stack,"",@progbits
  • doubao.s:
c 复制代码
section .text
    global _start

_start:
    ; 将 0 存入 r8d 寄存器
    mov r8d, 0

    ; 退出程序
    mov eax, 1
    xor ebx, ebx
    int 0x80    

asm

  • asm_test.c:
c 复制代码
#include <stdio.h>

int main() {
    int num = 10;
    __asm__ (
        "movl %1, %%eax\n\t"
        "movl %%eax, %0\n\t"
        : "=m" (num)
        : "r" (num)
        : "%eax"
    );
    printf("The value of num is: %d\n", num);
    return 0;
}

Intel

  • Intel 语法 mov_test.s 应改为
c 复制代码
mov  r8d,0
  • asm_test.c , 指定使用 Intel 语法,需要执行 gcc -masm=intel -S asm_test.c
相关推荐
small_wh1te_coder2 天前
GCC深度剖析:从编译原理到嵌入式底层实战
汇编·c++·面试·嵌入式·状态模式·c
白书宇3 天前
5.从零开始写LINUX内核--从实模式到保护模式的过渡实现
linux·汇编·数据库·开源
浩浩测试一下3 天前
02高级语言逻辑结构到汇编语言之逻辑结构转换 if (...) {...} else {...} 结构
汇编·数据结构·数据库·redis·安全·网络安全·缓存
蚰蜒螟4 天前
JVM安全点轮询汇编函数解析
汇编·jvm·安全
要记得喝水9 天前
汇编中常用寄存器介绍
开发语言·汇编·windows·c#·.net
技术领导力10 天前
华为开源CANN,再次释放“昇腾转向”信号
汇编
DONG91314 天前
Python 中的可迭代、迭代器与生成器——从协议到实现再到最佳实践
开发语言·汇编·数据结构·python·算法·青少年编程·排序算法
embrace9917 天前
【C语言学习】scanf函数
c语言·开发语言·汇编·学习·青少年编程·c#·编辑器
麦兜*17 天前
【算法】十大排序算法超深度解析,从数学原理到汇编级优化,涵盖 15个核心维度
java·汇编·jvm·算法·spring cloud·ai·排序算法
会掉头发18 天前
x86_64汇编
汇编