问题标签 [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 回答
350 浏览

assembly - 如何在汇编中实现数据类型,如堆栈?

我需要在程序集中实现一个自定义数据结构。优选地,它需要是动态的。类似于 C++/Java 中的链表,其中每个元素都指向下一个元素。请注意,每个元素的大小可能会有所不同。

我怎样才能做到这一点?

0 投票
2 回答
1340 浏览

c++ - 如何将 ASM obj 文件与 C++ 程序集成?

我想在 Visual Studio 2010 中集成 ASM 和 C++ 代码。基本上,我希望能够在我的 C++ 代码中使用在 ASM 中创建的某些例程。

所以我想知道:

  1. 首先如何将 ASM obj 文件添加到 VS2010?
  2. 如何从代码的 C++ 部分调用 ASM 代码中的函数?
  3. 假设我创建了一个函数(在 ASM 中)计算一个值并将该值存储在税务登记簿中。假设它被称为计算。我是否能够使用以下内容在 C++ 中接收返回值:int val=compute();
0 投票
3 回答
305 浏览

sorting - 代码优化提示:

我正在使用以下 ASM 例程对数组进行冒泡排序。我想知道我的代码效率低下:

基本上我有两个循环,就像冒泡排序算法一样。外循环的 ecx 值为 10,内循环的值为 [ecx-1]。我已经尝试过该例程,它编译并运行成功,但我不确定它是否有效。

0 投票
1 回答
649 浏览

assembly - 将数据写入正在运行的可执行文件

我正在尝试运行一个进程,等待它完成,打开可执行文件,然后写一些东西给它。所以我创建了一个小型“加载器”,它正是这样做的。这是我的代码:

如您所见,正在运行“SomeExecutable”文件。在它停止执行后,它会用 CreateFile 打开。创建文件失败,我得到一个 INVALID_HANDLE....,最后一个错误 - 0x20 - ERROR_SHARING_VIOLATION。

为什么会这样?

想法和注意事项: 1)从“加载器”创建另一个进程,该进程打开可执行文件(等待它完成执行后)并写入它 - 它可以工作。2) 似乎该进程仍处于打开状态,即文件仍被映射,这解释了错误,但我不明白为什么要映射它。3) 使用 Olly 和 ProcessExplorer 进行调试 我看到 Olly 确实打开了这个文件的句柄,即使在进程终止之后,所有句柄都已关闭 - 我不明白为什么,我怎么能关闭它:)

欢迎任何想法!:)

0 投票
1 回答
1466 浏览

datetime - 获取当前日期作为masm上的数字?

我想要一个程序每月执行两次 X 任务。所以我想把当天作为数字,所以我可以做类似 if day == 1 or 15 then do X

有人有一个简单的masm示例来获取当前日期作为数字吗?

我正在寻找代码简单性,以便我可以理解它的作用,也许我可以调用一些 win api。

0 投票
1 回答
840 浏览

assembly - masm32 代码显示错误“A2206”

下面的代码段应该走InInitializationOrderModuleList内部PEB并返回 kernel32.dll 的基地址。但是,当我尝试Console assemble and link使用以下代码时,我收到错误消息,指出存在missing operator in expression.

所以,我把这条线改成了:-

mov eax, fs:30h

我得到的错误是error A2108: Use of register assumed to ERROR. 我究竟做错了什么?

0 投票
2 回答
3441 浏览

assembly - dword ptr 和 dword ptr 的区别:es

我只是在 VS2010 中检查我的 C++ 程序的反汇编。这里是 :

有问题的行是:

我不明白他们为什么使用dword ptr es:[edi]and word ptr ds:[0B65740h]。虽然我知道 dword ptr 的含义,但我没有得到添加的最后一部分,:es并且:ds. 我已经看过这种语法很多次了,以至于没有注意到它。

谢谢,

开发者

0 投票
1 回答
2095 浏览

windows - MASM32 程序集 - 从控制台读取数字

对不起,如果这个问题真的很简单,但我尝试了所有我知道的但无法弄清楚。

我正在尝试制作一个简单的程序,该程序从控制台获取一个字符串和一个 Count,并打印由 Count 指定的字符串次数。

一切都很好,但是当我将 Count 移动到 eax 循环时,值变得混乱,我最终得到了一个无限循环的打印。

我尝试使用 atodw 将 Count 更改为 DWORD,但没有成功。

这是代码:

0 投票
6 回答
13512 浏览

assembly - x86 程序集 (MASM) - 64 位整数的平方根?

我正在用 x86 汇编语言 (MASM32) 为 Windows 编写一个简单的素性测试程序,其中涉及计算(64 位)整数的平方根。我的问题是:有没有简单的方法来获得平方根?我应该使用 ADD/SUB/DIV/MUL 指令的某种组合吗?

我找到了一些关于如何用 C 语言实现这一点的信息,但我只是想知道我是否在这里遗漏了什么?

0 投票
2 回答
4755 浏览

masm - MASM 使用寄存器作为 mod 运算符之间的表达式

我是 masm32 的新手,我想实现以下(不正确的)代码行中描述的这种想法:

mov ebx,(eax mod any_number)

编译器给了我错误 A2026:预期常量

我读到不能在寄存器之间使用 mod 操作,那么哪些方法可以帮助我执行相同的想法?

希望得到您的帮助。