雪傲天1 2023-04-14 17:08 采纳率: 96.2%
浏览 21
已结题

像请问各位,以下代码是什么意思



```c++

像请问各位,以下代码是什么意思
mov  dword ptr[this] , ecx
mov  eax , dword ptr[this]
mov  eax ,dword ptr[eax]

这三句的意思是不是,
ecx赋值给this
this的地址赋值给eax
eax的地址赋值给eax
另外请问这个dword ptr是什么意思,用什么符号来表示,因为见过很多次了,写文章时就用&来表示

```

  • 写回答

3条回答 默认 最新

  • CQ.abc 2023-04-14 17:14
    关注

    以下回答结合了ChatGPT:
    这段代码看起来是汇编语言,具体来说,它是x86汇编语言。这三句代码的作用是从一个对象中取出一个成员变量的值并将其存储在eax寄存器中。具体来说,这里的this是一个指向对象的指针,eax寄存器用于存储变量的值。因此,这三句代码的含义是:

    1. 将ecx寄存器的值存储到this指针所指向的内存地址中。
    2. 将this指针的值(即对象的地址)存储到eax寄存器中。
    3. 将eax所指向的内存地址中的值存储到eax寄存器中。

    在这里,dword ptr是一个指示符,表示操作的数据类型为一个32位的双字(dword)。ptr表示指针,用于指示要操作的数据在内存中的位置。因此,dword ptr[this]表示将ecx的值存储到this指针所指向的32位内存单元中。同样,dword ptr[eax]表示将eax所指向的32位内存单元中的值存储到eax寄存器中。

    在C++中,&符号通常用于获取变量的地址,与汇编语言中的指针类似。但是,使用&符号获取变量地址与使用dword ptr等指示符来访问内存中的数据是不同的概念。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月23日
  • 已采纳回答 4月15日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址