ml64 - 警告 A6004:未引用过程参数或本地

发布于 2024-08-08 08:49:14 字数 426 浏览 12 评论 0原文

我在 Visual Studio 2005 中为 x64 microsft 宏汇编器编写了一个函数。 该函数接收 3 个参数:

theFunction PROC firstP:QWORD, secondP:QWORD, thirdP:QWORD

x64 调用约定规定前 4 个参数将驻留在寄存器 rcx、rdx、r8 和 r8 中。 r9。 当我在函数中使用参数时,我引用的是注册它们自身而不是参数:

mov r10, rcx   ; Move firstP to r10

这会导致以下警告:

警告 A6004:过程参数或本地未引用

如何避免或抑制此警告? 有什么方法可以引用函数内部的参数而不是使用寄存器吗?

I have a function written for th e x64 microsft macro assembler in visual studio 2005.
The function recieves 3 arguments:

theFunction PROC firstP:QWORD, secondP:QWORD, thirdP:QWORD

the x64 calling convention state the the first 4 arguments will reside in registers rcx, rdx, r8 & r9.
When I'm using the arguments in the function, I'm referencing the register them self and not the parameters:

mov r10, rcx   ; Move firstP to r10

This causes the following warning:

warning A6004: procedure argument or local not referenced

How can I avoid or surpress this warning?
Is there any way to reference the parameters inside the function instead of using the registers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

念三年u 2024-08-15 08:49:14

找到解决方案:我不需要像我那样声明 PROC。无需声明传递给函数的参数。

theFunction PROC
mov r10, rcx       ;Move firstP to r10

Found the solution: I didn't need to declare the PROC the way I did. No need to declare the parameters that are passed to the function.

theFunction PROC
mov r10, rcx       ;Move firstP to r10
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文