问题标签 [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.
assembly - 如何在汇编中实现数据类型,如堆栈?
我需要在程序集中实现一个自定义数据结构。优选地,它需要是动态的。类似于 C++/Java 中的链表,其中每个元素都指向下一个元素。请注意,每个元素的大小可能会有所不同。
我怎样才能做到这一点?
c++ - 如何将 ASM obj 文件与 C++ 程序集成?
我想在 Visual Studio 2010 中集成 ASM 和 C++ 代码。基本上,我希望能够在我的 C++ 代码中使用在 ASM 中创建的某些例程。
所以我想知道:
- 首先如何将 ASM obj 文件添加到 VS2010?
- 如何从代码的 C++ 部分调用 ASM 代码中的函数?
- 假设我创建了一个函数(在 ASM 中)计算一个值并将该值存储在税务登记簿中。假设它被称为计算。我是否能够使用以下内容在 C++ 中接收返回值:
int val=compute();
?
sorting - 代码优化提示:
我正在使用以下 ASM 例程对数组进行冒泡排序。我想知道我的代码效率低下:
基本上我有两个循环,就像冒泡排序算法一样。外循环的 ecx 值为 10,内循环的值为 [ecx-1]。我已经尝试过该例程,它编译并运行成功,但我不确定它是否有效。
assembly - 将数据写入正在运行的可执行文件
我正在尝试运行一个进程,等待它完成,打开可执行文件,然后写一些东西给它。所以我创建了一个小型“加载器”,它正是这样做的。这是我的代码:
如您所见,正在运行“SomeExecutable”文件。在它停止执行后,它会用 CreateFile 打开。创建文件失败,我得到一个 INVALID_HANDLE....,最后一个错误 - 0x20 - ERROR_SHARING_VIOLATION。
为什么会这样?
想法和注意事项: 1)从“加载器”创建另一个进程,该进程打开可执行文件(等待它完成执行后)并写入它 - 它可以工作。2) 似乎该进程仍处于打开状态,即文件仍被映射,这解释了错误,但我不明白为什么要映射它。3) 使用 Olly 和 ProcessExplorer 进行调试 我看到 Olly 确实打开了这个文件的句柄,即使在进程终止之后,所有句柄都已关闭 - 我不明白为什么,我怎么能关闭它:)
欢迎任何想法!:)
datetime - 获取当前日期作为masm上的数字?
我想要一个程序每月执行两次 X 任务。所以我想把当天作为数字,所以我可以做类似 if day == 1 or 15 then do X
有人有一个简单的masm示例来获取当前日期作为数字吗?
我正在寻找代码简单性,以便我可以理解它的作用,也许我可以调用一些 win api。
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
. 我究竟做错了什么?
assembly - dword ptr 和 dword ptr 的区别:es
我只是在 VS2010 中检查我的 C++ 程序的反汇编。这里是 :
有问题的行是:
我不明白他们为什么使用dword ptr es:[edi]
and word ptr ds:[0B65740h]
。虽然我知道 dword ptr 的含义,但我没有得到添加的最后一部分,:es
并且:ds
. 我已经看过这种语法很多次了,以至于没有注意到它。
谢谢,
开发者
windows - MASM32 程序集 - 从控制台读取数字
对不起,如果这个问题真的很简单,但我尝试了所有我知道的但无法弄清楚。
我正在尝试制作一个简单的程序,该程序从控制台获取一个字符串和一个 Count,并打印由 Count 指定的字符串次数。
一切都很好,但是当我将 Count 移动到 eax 循环时,值变得混乱,我最终得到了一个无限循环的打印。
我尝试使用 atodw 将 Count 更改为 DWORD,但没有成功。
这是代码:
assembly - x86 程序集 (MASM) - 64 位整数的平方根?
我正在用 x86 汇编语言 (MASM32) 为 Windows 编写一个简单的素性测试程序,其中涉及计算(64 位)整数的平方根。我的问题是:有没有简单的方法来获得平方根?我应该使用 ADD/SUB/DIV/MUL 指令的某种组合吗?
我找到了一些关于如何用 C 语言实现这一点的信息,但我只是想知道我是否在这里遗漏了什么?
masm - MASM 使用寄存器作为 mod 运算符之间的表达式
我是 masm32 的新手,我想实现以下(不正确的)代码行中描述的这种想法:
mov ebx,(eax mod any_number)
编译器给了我错误 A2026:预期常量
我读到不能在寄存器之间使用 mod 操作,那么哪些方法可以帮助我执行相同的想法?
希望得到您的帮助。