当前位置:编程学习 > 汇编语言 >>

C语言中的指针如何进入嵌入的汇编语言?

# include <stdio.h> void main() { unsigned long m,*v; v=&m; m=0x01020304; printf(" %x %x %x\n",v,*v,m);//这一步的结果是12ff7c 1020304 1020304,符合预期 m=0x01020304; _asm { mov eax,m bswap eax mov m,EAX } printf(" %x\n",m);//这一步的结果是4030201,符合预期 _asm { mov eax,[v] bswap eax mov m,EAX } printf(" %x %x %x\n",m,v,*v);//结果感到意外:7cff1200 12ff7c 7cff1200 //照理来说,v是指针,就是地址,那么[v]就应该是m,怎么[v]仍然是v呢? v=&m; m=0x01020304; _asm { mov eax,v bswap eax mov m,EAX } printf(" %x",m);//结果:7cff1200,也在意料之中 }
其他:*你的核心问题,就是  [v]   与  *V(即原m)为什么不是一回事?
这要知道这两种单元的段地址是不是一样呢?  要了解WINDOWS
虚拟内存的原理,及精通保护方式下的汇编。

上一个:汇编语言中使用了便于记忆的什么编程,从而提高了编程的速度
下一个:解决汇编语言程序

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,