问题标签 [masm32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
733 浏览

windows - 如何通过 %errorlevel% 获取退出代码,它不再适用于汇编程序

我想获得我的教程汇编程序的退出代码(使用 masm32 和链接)。它工作正常,我会输入 echo %errorlevel%,它会显示我在之后输入的退出代码invoke ExitProcess。现在它不再起作用了。我在 OpenSuse 12.1 主机和 Windows Vista Home Premium 上使用 VirtualBox 作为来宾。我一直在寻找答案,但没有找到答案。大多数抱怨都是关于使用批处理文件,这不是我想要做的。这是简单的程序

hello_world.asm

我希望它返回 2,但echo %errorlevel%返回 0。我缺少什么吗?谢谢,我很抱歉这个问题已经回答死了。我只是找不到我的答案。

编辑:实际上,我找到了部分答案。只有当我使用链接时它才有效/SUBSYSTEM:CONSOLE。使用/SUBSYSTEM:WINDOWS总是返回 0。我不知道该怎么做。windows程序的退出代码在哪里?任何信息都非常感谢。

0 投票
2 回答
680 浏览

assembly - 汇编语言介绍

我对汇编语言比较陌生。我找到了很多教程来解释如何使用 ML64 和 MASM32 创建 HelloWorld 应用程序,但没有一个详细解释程序。例如,看看下面的示例,我在网上找到并编译(64 位):

我可以通过这个。我知道有通用寄存器和段寄存器,但你如何决定使用哪个。例如,为什么 'r8' 包含标题而不是 r9?是否有 WinAPI 的程序集参考?我意识到这是一个基本问题。我选择了 MASM32 标签,因为这是一个带有 64 位示例的一般问题。

0 投票
2 回答
4802 浏览

winapi - 使用 masm 将简单字符串写入控制台(汇编代码)

我想使用 writeconsole API 在控制台输出中写入一个字符串,但它不起作用我使用 masm 中的控制台链接并构建它

这是代码

当我运行 exe 输出时,我得到以下信息

C:\masm32>18.exe

C:\masm32>

空输出

所以任何建议

0 投票
1 回答
6089 浏览

assembly - x86 Assembly Newbie:基本的添加和存储数字问题

您好,我是组装新手,我正在努力让一个由两部分组成的程序工作。我正在为这个 x86 程序集使用 Visual Studio。

第 I 部分)我的第一个目标是数到 13,并在途中添加每个值。例如,0+1+2+3...+13=91。我想总共存储该总数。

第 2 部分)其次,我想用 2 的幂从 2^0 数到 2^6。例如,0、1、2、4、8、32、64。我想*我正在这样做,但我并没有随时存储每个值。我想将这些存储在连续的内存位置。

到目前为止,我有这个,

帮助我理解的问题。

  • 如何将值存储在连续的内存位置?
  • 我是否正确使用了跳转和标签指令?
  • 我是否需要使用像 eax 这样的特定寄存器来执行这些问题?为什么?

非常感谢任何帮助,谢谢。

0 投票
1 回答
2280 浏览

assembly - 从控制台读取时崩溃 - masm32

我创建了一个名为 t.exe 的 masm 程序,它假设从 cmd 读取输入并输出它。我知道它们可能是另一种方法,但我想使用 `Readconsole

`这是代码:

我尝试运行它,但出现 Microsoft 错误并且程序退出(“ t.exe 遇到问题需要关闭。对于给您带来的不便,我们深表歉意”)。实际上,如果有人知道一本从 masm 开始的好书……我需要它,因为我在处理数据类型方面的问题,请不要发表冒犯性的评论 :)

0 投票
1 回答
985 浏览

assembly - dll注入代码

我正在尝试创建一个dll注入代码,测试进程是记事本,进程ID是硬编码的

代码是:

当我运行它时,出现以下错误

kinject.exe 遇到问题,需要关闭。对此造成的不便,我们表示歉意。

所以建议plaftrom是windows xp sp3

0 投票
2 回答
2529 浏览

inline-assembly - masm中的字符串长度

我尝试使用以下 masm 代码在 cmd 屏幕中输出 hello 的字符串长度。我创建了一个调用strlo来计算字符串长度的函数。

当我运行它时,我没有得到任何输出。

F:\masm32>len.exe

F:\masm32>

0 投票
1 回答
1782 浏览

assembly - 通过 char X86 MASM 比较两个缓冲区

我正在使用 X86 程序集,需要按字符比较两个缓冲区并在第三个缓冲区中反映它们是否匹配

伪代码:

我无法弄清楚如何按每个字符访问 。

0 投票
2 回答
10413 浏览

assembly - x86汇编,如何添加存储在内存中的变量?

平台:奔腾 4 处理器(我真的需要升级 :) 运行 Windows XP。我目前正在用 MASM32 组装。

我是汇编的绝对初学者,我正在尝试弄清楚如何添加变量。我了解如何定义变量、将数据放入寄存器以及如何将寄存器放入堆栈,但我不知道如何组合两个变量的值(通过相加)。

另外,任何人都可以给我一个链接或一些易于理解的x86汇编教程,到目前为止我发现的所有这些都是非常高级的东西,他们没有解释太多。那将不胜感激。

在此先感谢,

0 投票
1 回答
960 浏览

assembly - x86 程序集 - 如何显示整数 2,而不是第二个 ASCII 字符

我有这个代码:

它应该做的是做1+1,然后在控制台上显示结果。当我运行它时,它显示 2 的 ASCII 字符(第二个 ASCII 字符),而不是数字 2。我不知道如何让它显示数字 2,而不是第二个 ASCII 字符。我怎么做?

提前致谢,

程序