qintangtao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年1月27日

摘要: 简要说明:BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit(我们这里使用24bit)。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。1.24位位图结构定义1.1文件头结构定义typedef struct tagBITMAPFILEHEADER{ WORD bfType; // 位图文件的类型,必须为BM(1-2字节) DWORD bfS.. 阅读全文
posted @ 2013-01-27 14:47 qintangtao 阅读(3195) 评论(0) 推荐(0)

摘要: offset 和 addr 之间有如下区别:addr不可以处理向前引用,offset则能。所谓向前引用是指:标号的定义是在invoke 语句之后,譬如在如下的例子:invoke MessageBox,NULL, addr MsgBoxText,addr MsgBoxCaption,MB_OK......MsgBoxCaption db "Iczelion Tutorial No.2",0MsgBoxText db "Win32 Assembly is Great!",0如果您是用 addr 而不是 offset 的话,那 MASM 就会报错。addr可以 阅读全文
posted @ 2013-01-27 01:06 qintangtao 阅读(856) 评论(0) 推荐(0)

摘要: 比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, ebp sub esp, 4 现在栈上就有了4各字节的空间,这就是你的局部变量。 接下来,你执行mov LocalVar, 4,那么实际的指令又是什么?是这样: mov dword ptr [ebp-4], 4 于是,这个局部变量的“地址”就是ebp-4——显然,它不是一个固定的地址。现在需要将它的“地址”作为参数传给某个函数,你这样写: invoke/call SomeFunc, addr Local... 阅读全文
posted @ 2013-01-27 01:02 qintangtao 阅读(1674) 评论(0) 推荐(0)