Win32汇编的小问题
mov eax,BITMAPFILEHEADER.bfoffBits这句代码 后面的是什么意思? 是在前面的结构地址 加上 esi的偏移的意思,还是很什么别的意思?
求解。。。。
本帖最后由 fujian810 于 2012-5-28 11:25 编辑
我在BITMAP.RAR中的hello.asm中测试了这句话:
mov esi,offset stBitmapFileHeader
mov eax,.BITMAPFILEHEADER.bfOffBits
mov ebx,
mov eax,BITMAPFILEHEADER.bfOffBits
通过反汇编(OD),可以看到这几句话实际是等效的,就是将stBitmapFileHeader.bfOffBits复制给eax,这里顺便指出下书中和MSDN的不同之处,书中BITMAPINFOHEADER结构体长度为36(24h),MSDN中BITMAPINFOHEADER结构体长度为40(28H),实际找了个BMP图片(rar中有),用UE打开可以看出,BITMAPINFOHEADER结构体长度为40(28H),以MSDN为准。
如果我没说错的话,esi表示的是下标!BITMAPFILEHEADER表示一个结构,然后bfoffBits 是这个结构中的数组的数组名,esi表示下表!BITMAPFILEHEADER.bfoffBits 表示,结构中数组bfoffBits中下标为esi的元素值!
页:
[1]