当前位置: 代码迷 >> 汇编语言 >> 初学者送分啦,解释一句代码
  详细解决方案

初学者送分啦,解释一句代码

热度:9602   发布时间:2013-02-26 00:00:00.0
菜鸟送分啦,解释一句代码
004011A2 MOV DWORD PTR DS:[40AD58],EAX
1.这句指令前面的地址004011A2是次代码的地址吗?
2.这句功能应该是把EAX的内容放到40AD58这里,不懂的是DWORD PTR是表示是这个是DWORD的指针吗?
3.DS:[40AD58]怎么解释?DS是什么



------解决方案--------------------------------------------------------
ds:【40ad58】是指在数据段里
dword是字 byte是字节
------解决方案--------------------------------------------------------
DS是数据段,
这句的意思是在40AD58这个内存地址中分配一个双字节大小空间来存放EAX寄存器中的内容
------解决方案--------------------------------------------------------
把eax放入数据段[40AD58]地址指定的双字里。现在的程序DS一般和CS,SS等相同,是平坦空间
------解决方案--------------------------------------------------------
1对
2是
3程序的数据段,一般不了解的话就别管了,编译器和DOS给你弄好一个能用的
------解决方案--------------------------------------------------------
这句指令要将EAX的内容赋值到数据段的一个位置,DS指定了数据段的位置,40AD58指定了段内地址,用DS:[40AD58]就可以确定目的地址,但是空间多大呢,所以用DWORD PTR 来为目的地址分配一个双字空间,这样一次赋值就完成了
------解决方案--------------------------------------------------------
1.“004011A2”指的是CPU分配的物理地址
2.该语句的功能是将EAX的数据放到数据段DS的偏移地址40AD58那里
3、DS指的是Data Segment,即代码段.DS:[40AD58]种,[40AD58]是DS的偏移地址,移动的时候,就将数据移到地址为:16*(DS)+40AD58的寄存器上
  相关解决方案