问题标签 [masm64]

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 投票
0 回答
60 浏览

assembly - 有没有办法对有符号的 8 位元素进行向量乘法和水平和(点积)?

我在 x64 Microsoft Macro Assembler 中有以下代码(简化示例):

我想在该过程中实现的是,使用 SIMD 将两个数组中的相应字节相乘(无论使用哪个寄存器都无关紧要),然后对结果求和。所以在这种情况下,我想做:

并返回 24。

这可以使用向量指令实现吗?

据我所见,大多数乘法指令都在 WORD 或 DWORD 上运行 - 因此,有没有办法将乘法拆分为多个片段并在例如 WORD 而不是 BYTE 上运行?

在这种情况下,这些说明对我pmaddwd来说似乎没有用。有什么我想念的吗?pmullwpmulhw

0 投票
1 回答
45 浏览

assembly - 为什么程序需要堆栈帧或影子堆栈?

(对不起我的英语不好,因为我来自韩国)

我试过这段代码

并坠毁......
在那之后,我尝试了另一种方式


这两个代码可以工作,但问题是......,为什么程序需要这些东西?
这让我很好奇

问题出在哪里的真实代码

0 投票
1 回答
56 浏览

assembly - 使用 Masm + LOCALS 在 Windows 上的 x64 程序集中正确设置堆栈指针

我有以下简单程序,我正在尝试在使用 MASM 构建的 Windows 10 上构建目标 x64:

Masm 会自动添加以下代码:

然而,当 WndProc 是例行程序时,我们调用 DefWindowProcW 时触发访问冲突

我怀疑这是因为堆栈指针设置不正确,但 masm 似乎正在为此添加代码。如何正确执行此操作?

masm添加的代码

它相当于sub rsp,40。它不能被 16 整除,在我的代码中添加 sub rsp,8 可以修复崩溃。

是解决此问题的最佳方法,还是 masm 有办法自动计算正确值/或预测需要提前更正的内容?

0 投票
1 回答
63 浏览

winapi - X64 Windows 汇编程序中的 WndProc 未收到 WM_DESTROY 消息

我正在尝试使用 MASM /w Visual Studio 2019 重新创建类似于以下有效的 C++ 代码的东西。基本上在这个阶段只希望窗口可以移动并且关闭按钮可以工作。

在我使用 MASM 的 x64 程序集版本中,创建并显示了 Window,WndProc 也被击中,可以看到它收到消息 WM_CREATE 和 WM_PAINT,但 Window 不能移动也不能关闭。我确实将 C++ 版本编译为 x64 并输出程序集列表以进行比较,但据我所知,它与程序集版本非常相似。

注意由于本地语句 masm 在 sub rsp,8 之前自动添加到我的 main 中: (-152 + -8 = -160 )

并添加到 wndproc 例程 (-120 + -8 = -128)

0 投票
0 回答
17 浏览

masm64 - MASM64 反向 tcp shell - cmd 未绑定到套接字

我正在尝试编写创建反向连接并将 cmd.exe 绑定到套接字的代码。没有错误 - 我在操作系统中创建了套接字、连接和 cmd 进程,但在使用 netcat 的控制台中,我只看到连接成功,没有操作系统提示:

C:\Users\myuser\NETCAT>nc.exe -lvp 444

监听 [any] 444 ... 从 DESKTOP-2E15R3U [192.168.1.105] 18433 连接到 [192.168.1.105]

我忘记在代码中做什么来成功绑定 сmd 和套接字?