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

assembly - MASM32 内存位置

我正在尝试使用 masm32 程序集从主内存中读取数据,为了做到这一点,我创建了(如先前在我的另一个问题的答案中所建议的那样)一个数组,该数组将包含非常分离的内存位置(以避免从缓存)。我已经设法创建了数组并让它被读取,但是,我有一个问题。我已经做过并测试过的这个数组正在使用我给它的数据(即数字)并且一切正常。但是我需要内存位置,但我在任何地方都找不到地图或对这些位置的引用。我的意思是我需要类似的东西:

但我应该使用相应的内存位置保留字而不是使用数字。但我找不到它们 =( 甚至不知道还要寻找什么。


编辑

让我检查一下是否正确,然后您告诉我可以(而不是使用数组,而是使用变量之间的所有空间来强制从主存储器读取,对吗?

0 投票
2 回答
4147 浏览

winapi - 访问段寄存器 MASM

我正在尝试查询位于进程环境块中的值,该值由 FS 段寄存器指向。尝试编译包含 fs:[0] 段的代码会导致错误(错误 A2108:使用寄存器假定为错误)。

你如何查询段寄存器?!

谢谢

0 投票
1 回答
713 浏览

assembly - VS2008 asm 构建中的 LNK4086 警告和缺少 dll 入口点

我尝试在 VS2008 中编译以下 .asm 文件(作为我添加了这个单个 .asm 文件的空 Win32 dll 项目的一部分):

代码最初发布在这里

当我构建时,我得到一个警告:

警告 LNK4086:入口点“_start”不是带有 12 个字节参数的 __stdcall;图像可能无法运行

但是,会生成一个 .dll。

尝试使用该 dll 时出现异常,因为“无法在 dll 中找到入口点 CPUIDIsSupported”

但现在这是踢球者:

如果我在 MASM32 中编译完全相同的 asm 文件,我仍然会得到 LNK4086,但可以正确调用 dll。

我想在我的 VS2008 解决方案中包含 asm 文件并从那里构建它,而不必使用 MASM32。因此,我想知道我需要对构建过程进行哪些更改才能获得工作的 dll。我也很想知道如何从 VS2008 中创建 64 位版本的 dll。

0 投票
5 回答
1025 浏览

assembly - MOV [EBX], AX - 指向寄存器的指针?

MOV [1234H], AX表示将 AX 的值复制到内存中的 1234 十六进制地址。所以,如果我说的是错误的,请纠正我,[] 运算符用作指针,对吗?

话虽如此,我无法理解以下说明:MOV [EBX], AX为什么使用 [ ]?EBX 是处理器内部的通用寄存器,不是内存单元,所以没有指向它的指针,对吧?

PS我在masm32下编程。

谢谢

0 投票
2 回答
187 浏览

assembly - MASM32“默认代码距离”是什么意思?

MASM32 中使用的这个符号:

@CodeSize返回一个表示默认代码距离的整数。

我想了解“默认代码距离”是什么意思?

托尼

0 投票
1 回答
219 浏览

winapi - masm32中带有64位数字的winapi

我需要确定逻辑卷的大小并打印它。GetDiskFreeSpaceEx 将大小返回为 64 位数字(?)。我能用它做什么?

0 投票
1 回答
26159 浏览

assembly - 汇编中的多行注释

有没有办法在程序集中注释多行?

我正在使用 Masm32 v9。

谢谢。

0 投票
3 回答
772 浏览

assembly - Intel x86 协处理器组装问题

我在理解如何检索使用 Intel 的 x86 协处理器完成的计算结果时遇到了一些麻烦。

请考虑以下数据段。

以及以下代码段,版本 1

版本 2

我理解版本 1,没有问题。

2版​​没看懂 我可以在调试器中看到它与版本 1 一样进行了一些精确的计算,但是当存储时间是“41066666”!?

这是什么原因?
使用什么“编码”将 8.4 变成“41066666”?
有没有办法将它转换回 8.4,以便我可以在控制台中打印它(例如,使用 StdOut masm32 库函数)?

谢谢。

0 投票
2 回答
1791 浏览

assembly - 在 MASM32 上包含语法

将文件包含到 MASM32 时,它找不到自己的文件。包含masm32rt.inc后,汇编器找不到\masm32\include\windows.inc

显然大多数 MASM 系统包含文件以 \ 开头,而不是指定相对或绝对路径。

我尝试在 %PATH% 中指定目录,设置 /I 编译开关,并设置 INCLUDE 和 MASM32 环境变量,但均未成功。

似乎它给了 Windows 一条它不理解的路径。一种解决方案是在文件中进行大规模查找和替换,并在指令前添加 C:。但是,我想阻止编辑他们提供的文件,并找出正确的方法。

如何设置它以便它可以找到自己的文件?

0 投票
1 回答
383 浏览

assembly - 在 BIOS 中显示图形

使用 MASM32 是否可以将存储在嵌入可执行文件的二进制文件中的位图显示到控制台?

谁能告诉我怎么做?

附录:我不是在这里谈论一个完整的 GUI。只是能够在屏幕上显示字符位图。它们将作为 8x8 二进制图像存储在我们链接到可执行文件的文件中。