Assembly 如何使用十六进制创建二进制可执行文件?

Assembly 如何使用十六进制创建二进制可执行文件?,assembly,binary,hex,Assembly,Binary,Hex,我最近一直在从事汇编级编程工作,我能够使用nasm或as将汇编级代码转换为机器级代码,并从中提取十六进制代码,但反过来又如何可能呢?我需要编写二进制可执行文件,只需给出十六进制。我需要将以下十六进制文件转换为可执行文件,我该怎么做?a.s: .globl _start _start: .byte 0x7a,0x65,0x00,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x5f,0x62,0x73,0x73,0x5f,0x73,0x74,0x61,0x72,0

我最近一直在从事汇编级编程工作,我能够使用nasm或as将汇编级代码转换为机器级代码,并从中提取十六进制代码,但反过来又如何可能呢?我需要编写二进制可执行文件,只需给出十六进制。我需要将以下十六进制文件转换为可执行文件,我该怎么做?

a.s:

.globl _start
_start:
.byte 0x7a,0x65,0x00,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x5f,0x62,0x73,0x73,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x65,0x64,0x61,0x74,0x61,0x00,0x5f,0x65,0x6e,0x64,0x00
gnu工具链命令

as a.s -o a.o
ld a.o -o a
编辑

键入此编辑比谷歌搜索花费的时间更长

nasm语法:

global _start
_start:
db 0x7a,0x65,0x00,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x5f,0x62,0x73,0x73,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x65,0x64,0x61,0x74,0x61,0x00,0x5f,0x65,0x6e,0x64,0x00

你在写什么?Windows,或Linux,或其他平台?我使用ubuntu,但我想继续讨论Windows和Linux,Linux具有更大的优先权感谢这是非常有希望的,但是有没有办法用nasm的方式来做呢。我看到你在用气体组装器!!!我相信这是非常相似的,只需定义数据,无论nasm想要什么,以及任何全局链接器变量global\u start或类似的东西。。。