【问题标题】:How to run assembly code. I have it in a text file but I don't know how to run it如何运行汇编代码。我有它在一个文本文件中,但我不知道如何运行它
【发布时间】:2019-04-15 16:48:39
【问题描述】:

我在一个文本文件中有汇编代码,但我不知道如何运行它。我希望你能帮我详细解释。谢谢

【问题讨论】:

  • 该文件是为哪个架构、操作系统和汇编程序编写的?
  • 与“高级”操作语言不同,汇编代码只能在特定的 CPU 类型上工作:为 x86(典型 PC)编写的汇编代码不能在 ARM CPU(Raspberry Pi)上工作。 x86 PC 甚至有不同的操作模式,需要特定的代码。不同的操作系统需要不同的代码。最后,不同的编程工具(“汇编器”)需要不同的语法。如果您不发布代码文件以便我们查看,我们绝对没有机会帮助您。

标签: assembly


【解决方案1】:

警告:永远不要运行你不知道的代码。在组装的情况下,它可能会使您的系统崩溃,甚至更糟。

假设您的汇编代码是 x86, 并假设它看起来不仅仅是“01101010”或“de876f1a6bc37”的行 并假设您使用的是 Windows,

  1. 设置您的开发环境:https://ccm.net/faq/1559-compiling-an-assembly-program-with-nasm#compiling-an-assembly-program-with-nasm-for-windows
  2. 复制汇编代码
  3. 打开记事本
  4. 粘贴代码
  5. 在桌面上另存为“assembly.asm”
  6. 按住shift,右键单击桌面,选择“打开命令窗口 下拉菜单中的“这里”
  7. 输入以下两条命令:
  8. nasm -f win32 assembly.asm -o test.o
  9. ld test.o -o assembly.exe

再次,小心组装。你也可能没有得到输出,所以你不会知道你的程序的输出。

【讨论】:

  • 您还假设它是适用于 Windows 的 32-bit x86 的 NASM 语法。如果它是为 Linux 编写的(例如,使用int 0x80 系统调用),它将组装 + 链接但在 Windows 上崩溃。 x86 还有许多其他的汇编语法,包括在 Windows 上常见的 MASM。您所做的假设远不止“x86”。
  • 假设我们在 linux 上并使用 x86,你能回答这个问题吗?
  • @GrayHat stackoverflow.com/questions/3314919/… 注意语法上的差异,如果它是 NASM 或其他东西
  • Assembly 本身不会使您的计算机崩溃。这适用于任何其他语言。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多