问题标签 [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 投票
3 回答
345 浏览

winapi - 汇编中的 RegisterClassEx

我正在尝试手动调用 RegisterClassEx Windows API,而不在 .data 部分使用 WNDCLASS 结构,我只需要使用push指令创建此结构。

有人可以帮我吗?

非常感谢

0 投票
2 回答
11080 浏览

winapi - 错误 LNK2001:无法解析的外部符号 _MessageBox

我正在尝试仅使用 masm 而不是 masm32 库创建一个 helloworld 程序。这是代码片段:

我可以使用 masm 组装它:

但是,我无法链接它:

我在链接期间包含了库,所以不知道为什么它仍然显示未解析的符号?

更新:

更新 2:最终工作代码!

0 投票
5 回答
550 浏览

assembly - 试验 MASM32 会破坏我的电脑吗?

在我的电脑上玩一点安全吗?我有这样的预感,在编写一些实验代码时我会犯一个可怕的错误。我的恐惧是没有根据的吗?


编辑

感谢您的快速回复并澄清了我的担忧。我想我不必为此担心太多。如果我想做一些危险的实验,我会准备一个虚拟机环境。再次感谢!

0 投票
3 回答
2831 浏览

assembly - INVOKE MASM 自动保存寄存器?

当我在 masm 中使用 Invoke 指令时,是否可以自动保存 cpu 寄存器?

0 投票
3 回答
337 浏览

c++ - 为什么 __int16 和 int (32) 用 C++ 生成不同的 asm?

我最近开始学习 masm 汇编,我一直在反汇编我的许多程序只是为了看看。我注意到,当您使用 __int16 (字)时,它的值首先复制到 eax 然后复制到变量本身,但是使用 int (dword/32) 它直接复制到变量中:这是两者的反汇编代码

我注意到 __int16 的大小为 16 ......这是 eax 大小的一半,这就是为什么它先放入 eax 然后才将 ax 放入 x 的原因吗?

另外,哪个最快?

有什么好的masm网站可以推荐吗?

感谢您的输入

0 投票
4 回答
12329 浏览

assembly - 未解析的外部符号 _WinMainCRTStartup

我正在尝试用 Masm32 组装一个简单的“Hello world”应用程序。它组装得很好,但是当我尝试链接它时,链接器说

链接:错误 LNK2001:未解析的外部符号 _WinMainCRTStartup prog1.exe:致命错误 LNK1120:1 个未解析的外部符号

这是程序的源代码:

我在一些论坛中发现这是由编码类型引起的。但是,这对我的问题似乎无关紧要

0 投票
2 回答
222 浏览

assembly - 汇编程序帮助

我有一个程序应该清除屏幕并打印我的名字,然后换行并再次打印我的名字。但是当我运行它时,什么都没有出现。只是程序正常终止。我正在使用调试在 Windows 命令提示符下执行此操作。

0 投票
1 回答
614 浏览

winapi - WriteFile String Byte Length 导致崩溃

问题

我一直在尝试各种字节计数,试图让WriteFile工作。问题是它在写入文件后立即崩溃。所有文本都在文件中,但“程序已崩溃,发送给 Microsoft??” 弹出错误对话框。

当注释掉调用 WriteFile 及其下面的所有内容时,程序运行良好并且不会崩溃。但是,当我只是取消注释 WriteFile 并将其下面的所有代码都注释掉时,它再次抬起了它的丑陋脑袋。代码如下,如果有人能看到我错过的东西,非常感谢:-)

我试过的字节长度。

我尝试了 23、24(字符串长度 + null)、25(也许我忘记了一个字节)的字节长度,并且也只使用了 SIZEOF WriteText,但它们都失败了:-(。

代码

0 投票
2 回答
256 浏览

webbrowser-control - How I can integrate browser engine to my MASM app?

I'm developing an app on MASM using the RadASM IDE. This IDE comes with an IE control (WebBrowser) but the content that I want to display is broken on that browser (XHTML+CSS), also I want to remove the dependency of an external IE dll so the only solution that comes to my mind is use an engine of other browser like Firefox or Chrome. I've searched over the net and I found some DevKits that meets my requeriments, but they are designed to work with VS2005+ or they just are coded on C++.

If someone know a way to integrate a browser engine (Not IE) to a MASM app, will be highly appretiated.

0 投票
3 回答
28184 浏览

winapi - 使用 WIN32 函数在 MASM 中输出 Hello World

内容

  1. 介绍
  2. 代码
  3. 组装和运行
  4. 各种各样的
  5. 问题

1. 介绍

这本身不是一个问题(尽管底部有一个),而是一个供 StackOverflow 上的人们试验的 HelloWorld 应用程序。

当我第一次尝试在 MASM 中编程时,我试图找到一个使用 WIN32 API 调用(因此不链接到 C 库)但找不到一个(在 MASM 语法中)的工作 HelloWorld 应用程序。所以现在我有了一些经验,我已经为其他想要学习汇编的人写了一个来摆弄。

2.代码

3. 组装和运行

我假设您在 C:\MASM32 目录中安装了 MASM32。

  • 如果您没有安装 MASM,请访问 http://masm32.com/install.htm 并按照说明进行操作。

  • 如果 MASM32 安装在不同的目录中,请相应地更改说明。

    1. 通过单击桌面快捷方式打开 MASM32 编辑器 (QEditor),如果没有快捷方式,请转到 C:\MASM32\ 并双击 qeditor.exe

    2. 复制代码部分的代码(只有灰色背景的文本)并粘贴到MASM32编辑器(QEditor)中并保存。

    3. 保存代码后,单击 Project 菜单并选择 Console Assemble and Link ( NOT Assemble and Link (see Miscellaneous))

    4. 转到开始并单击运行,然后键入 cmd 并按 ENTER 应出现一个带有灰色文本的黑框

    5. 使用资源管理器导航到您在第 3 步中保存代码的位置。现在应该有一个与您的源文件(第 3 步)同名的文件,但它是一个 exe。将exe文件从资源管理器窗口拖放到cmd框中(第4步黑框)

    6. 选择黑框并按回车键,文本“Hello World!” 应该出现。

4. 杂项

为什么我必须单击控制台组装和运行,而不仅仅是在项目菜单中的组装和运行?

您必须单击 Console Assemble and Run 的原因是因为有两种类型的应用程序,一种是 GUI,另一种是文本基本控制台 (DOS) 应用程序。Hello Will 应用程序是基于文本的应用程序,因此在组装时必须具有基于控制台的应用程序而不是 GUI 的设置。

有关更详细的说明,请参阅此链接中备注下的第三段。

5. 问题

好的,现在的问题是,这里是否有人看到此代码的任何问题、错误或一般问题或有任何建议