问题标签 [masm]

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 回答
566 浏览

c++ - 使用 MASM 的内联 io 等待

如何将其转换为使用 VC++ 和 MASM

我知道 asm 更改为 __asm 并且我们删除了 volatile 但接下来呢?

我正在尝试创建要放置在下面代码中的函数

0 投票
1 回答
744 浏览

assembly - Visual C++ 汇编链接库的烦恼

我在 VC++ Express 2008 中构建项目时遇到问题...我正在使用库 irvine32.inc/lib。默认情况下,包括 Irvine32.inc 在学校(在已配置的 VS 环境中)为我工作,但在家里(Windows 7 x64)我遇到了很多问题。我的原始帖子是 irvine32.inc 在同一文件夹中引用的文件“无法打开”。将 irvine 文件夹添加到特定项目、进度的包含路径中。然后我遇到了 mt.exe 错误,但是 MSDN 上的一个建议建议关闭防病毒软件,现在项目确实构建了,但是当我运行一个不引用 irvine32 中任何内容的程序时,它反复告诉我我的项目已触发一个断点,并允许我继续或中断。Continue 只是弹出同一个窗口,break 加载另一个弹出窗口告诉我“ 没有为任何调用堆栈帧加载符号。无法显示源代码。” 这个弹出窗口让我查看反汇编。

我在使用和不使用工作语句的情况下对其进行了测试,它只是在第一行代码上抛出了相同的断点。现在,如果我在程序确实需要包含文件中的某些内容时运行该程序,在本例中为 DumpRegs:

这给了我

1>main.obj:错误 LNK2019:未解析的外部符号 _DumpRegs@0 在函数 _main@0 中引用 1>C:\Users\Cameron\csis165\Lab8_CCarroll\Debug\Lab8_CCarroll.exe:致命错误 LNK1120:1 个未解析的外部

当我根据本书作者的示例构建项目时,不会发生这种情况,该示例具有相同的 include 语句。

我很困惑。:(

0 投票
6 回答
96752 浏览

assembly - What does OFFSET in 16 bit assembly code mean?

I am going through some example assembly code for 16-bit real mode.

I've come across the lines:

what is this doing? What does having 'OFFSET' there do?

0 投票
2 回答
1309 浏览

c# - 为 X86/X64 编译程序集以与 C# 一起使用

我想将 cpuid 功能添加到我的 C# 应用程序中。我在网上发现了这篇有趣的博客文章。我可能需要 MASM 来编译它,但是:

  1. 我应该如何开始?
  2. 我怀疑我将不得不为 X86 和 X64 编译一个 dll,但我又不知道如何去做这样的事情(而且我有点时间紧迫)。

因此,任何帮助都将受到欢迎!

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 投票
3 回答
1148 浏览

assembly - 使用 XOR 解密文件

首先我使用 MASM,我打开一个加密文件并将其内容放入缓冲区并将其导出到一个新文件。除了解密部分,我一切正常。

我不确定我是否需要对缓冲区本身进行异或,或者我是否引用 edx(我存储缓冲区的位置),或者我是否需要对我放入 eax 寄存器中读取的字节进行异或。

0 投票
2 回答
2058 浏览

visual-studio - Visual Studio 2008 中的汇编编程

有没有人有 Visual Studio 2008 MASM 项目的最佳实践项目模板?我不知道为什么 Microsoft 将 VS 与 MASM 一起发布,但希望您使用空白 C++ 项目,因为默认情况下可以使用项目模板添加太多内容。

此外,是否有用于 MASM 项目的 TFS 2008 项目连接器,因为我一直找不到?

0 投票
2 回答
3174 浏览

assembly - 无法摆脱简单的组装循环

我被要求用汇编语言创建一个简单的循环,但我遇到了麻烦,因为循环没有在它应该结束的时候结束,它继续在一个无限循环中。

我需要给 ECX 一个由输入获取的变量,但是在我下面的代码中,即使我直接指定了计数器,它仍然会陷入无限循环。

我的代码在这里(更新):

PasteBin 代码

代码可能包含实际循环以外的错误。

//为解释程序要求而编辑...

程序需要一个输入“n”,它将用作循环的计数器。然后我输入“n”个更多数字,当一个数字为正时,我需要将其添加到变量 postot,当我需要将其添加到变量 negatot 时。输入“n”个数字后,我打印每个变量的结果并退出程序。

编辑2:

通过正确清除堆栈修复了循环问题,因此我添加了:

和:

这解决了循环问题。

0 投票
5 回答
1025 浏览

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

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

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

PS我在masm32下编程。

谢谢

0 投票
2 回答
2406 浏览

masm - MOV 命令的 Masm 间接寻址模式

我尝试了以下形式,但 masm 不喜欢其中的任何一种:

我错过了什么?为什么我似乎不能使用间接寻址。

我从 masm 得到的错误是某些行上的“表达式中缺少运算符”,其中一些说“预期结构字段”