0

我是 C++ 和内联 asm 的新手,搜索并没有让我在任何地方得到错误 C2415

MOV Incoming_Packet_Length,DWORD PTR SS:[EBP-14]
MOV Incoming_Packet_Pointer,DWORD PTR SS:[EBP-1C]

我挂了这个

Address   Hex dump          Command    
006D89D0  |> >FF75 EC       PUSH DWORD PTR SS:[EBP-14]
006D89D3  |. |FF75 E4       PUSH DWORD PTR SS:[EBP-1C]
006D89D6  |. |E8 B4C5FFFF   CALL 006D4F8F

我想获得这些值的变量都是静态整数

静态 int Incoming_Packet_Length; 静态 int Incoming_Packet_Pointer;

谢谢

4

1 回答 1

0

我猜 C2415 是一种“无效的寻址模式”。您需要分两步进行移动:

MOV      EAX,DWORD PTR SS:[EBP-14]
MOV      Incoming_Packet_Length,EAX
MOV      EAX,DWORD PTR SS:[EBP-1C]
MOV      Incoming_Packet_Pointer,EAX

X86 不支持直接从内存移动到内存 - 一侧需要是寄存器。

于 2013-04-04T15:45:37.080 回答