【问题标题】:A simple assembly program?一个简单的汇编程序?
【发布时间】:2022-04-12 07:59:00
【问题描述】:

我最近从 MSVC++ IDE 学习了如何使用 MASM,为了测试它是否有效,我想运行一个小程序。

但是,我还不知道任何程序集(我所做的是无用的:即:即使我知道 C++ 中的 i+=1; 是什么,但如果没有 int main(),我什么也做不了。

那么我在哪里可以找到一个类似于 C++ 中使用的 helloworld 程序的简单汇编程序? (它实际上不必显示“Hello, World!”,它只需要做一些事情来确保我的设置有效)。

【问题讨论】:

    标签: assembly masm


    【解决方案1】:

    这是 MASM 在线文档: http://web.sau.edu/LillisKevinM/csci240/masmdocs/

    这是关于汇编的权威教程: http://webster.cs.ucr.edu/

    我认为在这两者之间你应该能够加快速度并开始编写程序。

    【讨论】:

      【解决方案2】:

      为了让您快速入门,我建议您访问以下网站: RADasmWinASM

      从这些站点中,您可以找到一些示例,以及一些带有 IDE 和编译器的预打包下载。这种方式实际上很容易在早期做一些 GUI 软件,但请注意,请注意阅读有关 x86 程序集的信息。查看wikibooks - x86 assembler

      【讨论】:

        【解决方案3】:

        试试这个

        global _main
        
        _main:
        mov ax, 0x01
        mov bx, 0x02
        
        inc ax
        inc bx
        
        jmp _main
        

        解释:

        1°_ 你对 nasm 说要搜索 _main 标签:global _main

        2°_ 你声明_main 标签

        3°_ 你正在改变两个 cpu 寄存器的值:axbx 分别为 0x010x02

        4°_ 你增加了axbx 的值

        5°_ 最后,你跳转到_main,这意味着你处于无限循环中

        【讨论】:

        • 这是一个 MASM 问题,而不是 NASM。它可能不接受global 指令。此外,如果您出于某种原因要在标签前加上_,则需要jump _main
        • 哦,是的,我忘了。
        • 你可以edit你的答案来修正错误
        • 我不知道masm的语法
        • 我的意思是修复 main_main 的不匹配。我为你做的。
        【解决方案4】:

        您可能会觉得这个网站很有趣: Authoring Windows Applications In Assembly Language。您可以下载 The Small Is Beautiful Starter Kit,其中包含一个示例应用程序,用于在汇编中编写 Windows 程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-02-25
          • 2021-06-22
          • 1970-01-01
          • 1970-01-01
          • 2015-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多