【问题标题】:Run asm in Visual Studio code在 Visual Studio 代码中运行 asm
【发布时间】:2019-10-06 00:00:33
【问题描述】:

Visual Studio 代码 (mac) 中是否有某种可以运行基本程序集的插件,例如:

.section .text
.globl _start
_start:
    movl $1, %eax
    movl $0, %ebx
    int $0x80

事实上,目前我正在 ssh'ing 到一个 linux 服务器以运行这个程序集,但我希望可以从 VS 代码中构建/链接/执行这个程序集,也许使用插件。

【问题讨论】:

  • 为了做到这一点,您需要一个能够理解这种语法 (GAS) 的汇编器,它必须与 VSCode(它只是一个 IDE)分开安装
  • NASM 可用于 mac Install nasm on Mac OSX – Mac App Store 虽然,就个人而言,ssh 到 Linux 机器中对于所有实际目的都可以。您可以打开两个终端(一个用于编辑,一个用于编译/链接/运行),也可以使用单个终端和 tmuxscreen 通过单个终端处理多个会话。
  • 帮自己一个忙,使用英特尔语法。为此,请在文件开头添加指令 .intel_syntax noprefix
  • 这个汇编程序不能在 Mac 上运行;它使用与 Linux 略有不同的 32 位系统调用 ABI。尽管exit 可能确实有效,但如果它使用与 Linux 相同的调用号,则将堆栈上的任何随机值作为退出状态 arg。

标签: assembly visual-studio-code x86 att


【解决方案1】:

您可以创建一个任务来组装和链接您的代码,然后,您可以使用gdb extension 来调试您的代码。

为了让这个过程更快,如果你不知道怎么做,可以使用.vscode folder

由于您使用的是 AT&T 语法,因此您需要使用 gas 选项来运行代码。

如果你还没有gdb,你可以打开终端安装它并执行:brew install gdb

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2021-05-26
    • 2018-09-21
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多