Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在Ubuntu中使用FASM制作可移植可执行文件_Assembly_X86_Wine_Fasm - Fatal编程技术网

Assembly 在Ubuntu中使用FASM制作可移植可执行文件

Assembly 在Ubuntu中使用FASM制作可移植可执行文件,assembly,x86,wine,fasm,Assembly,X86,Wine,Fasm,堆栈社区 我目前在Ubuntu 17.10上学习汇编语言。当我使用Windows时,我使用一个名为“win32a.inc”和MyLib.inc的库来读取eax和打印hex。以前的语法是这样的: format PE console include 'win32a.inc' entry start section '.text' code readable executable start: mov eax,0xffff call print_eax push 0 call [E

堆栈社区

我目前在Ubuntu 17.10上学习汇编语言。当我使用Windows时,我使用一个名为“win32a.inc”和MyLib.inc的库来读取eax和打印hex。以前的语法是这样的:

format PE console
include 'win32a.inc'
entry start
section '.text' code readable executable
start:
     mov eax,0xffff
     call print_eax
push 0
call [ExitProcess]

include 'MyLib.inc'
但由于在Windows上没有很好的体验,我不得不改用Linux。我这样做是为了安装fasm:

sudo apt-get install fasm
但当我试图制作一个可执行文件时,我计划用wine运行它,结果在终端上出现了一个错误:“win32a.inc”源文件丢失

“win32a.inc”是Windows上的默认fasm库。我不知道如何在Linux中使用它。不过,我有所有Windows库的备份;\u

有没有一种方法可以使用FASM在Linux中制作一个可移植的可执行文件


您可以编译到任何操作系统上FASM支持的任何类型的文件

诀窍在于FASM的Windows端口将文件名视为不区分大小写,而Linux FASM将其视为区分大小写

因此,请检查include指令中使用的文件名的大小写


FASM默认包含库的实际文件名都是大写的。因此,如果要使用Linux或任何其他Unix类型的OS FASM编译此代码,则需要使用WIN32A.INC。

WIN32A.INC是否随FASM的Windows发行版一起提供?你有没有试着用那种方式得到它的副本?如果您不尝试包含您没有的文件,FASM是否会生成PE可执行文件?如果是这样,您的问题是如何获得这些FASM库,而不是如何制作PE。win32a.inc随›FASM for Windowsè-软件包提供,您不能将其用于linux,因为API和系统调用非常不同。汇编语言不是可移植软件的首选语言。不过,您可以为windows和linux创建具有相同功能的自定义库。@fuz:他的问题是他将在wine下运行可执行文件。@Sivzius那么,我是否必须在运行Win10的linux下使用Virtual Box才能生成windows可移植可执行文件?不,您仍然可以在linux上使用fasm生成windows可执行文件,如果下载了windows的include files,但不能使用相同的文件创建linux可执行文件,只要没有具有相同功能的windows和linux库。