最近的汇编语言课程设计中,我分配到的题目是《屏幕截取程序》,要求是用16位汇编编写出一个dos界面下的屏幕截取程序,并且把截取到的屏幕保存成文件。
在对资料的搜索中,我发现网络上并没有类似的相关的博客或者教程之类的东西(只找到了一个win32位的汇编),所以可以说是在两眼一抹黑的情况下最终完成了程序的基本要求。为了记录一下自己的学习过程,也是为了以后遇到这个问题的人有一定的资料或者源代码可以参考,我决定写下我在csdn的第一篇博客。
这篇博客我会分为3个部分,第一个部分是我查找资料以及询问老师的一些过程,包括一些比较有用的博客地址。第二个部分是以我的实验报告为主的程序实现原理等,第三个部分是源代码的附件。
查找资料:
刚开始遇到这个问题的时候,跟大多数人一样,我选择的是进行网上的搜索,但是显然,这个16位汇编下的屏幕截取首先一没有其实用性,二来也算一个比较少见的实验课题。所以,就算经过了很长时间的寻找搜索,也没有找到类似的教程,只找到一个win32汇编下的屏幕截取程序,算是提供给了我的基本思路,但是由于win32和16位汇编的差异,我在注释较少的情况下基本无法看懂。下面这是win32屏幕截取程序的博客地址:http://blog.csdn.net/ppluer/article/details/51383097。这是第二篇,其余几篇麻烦自寻。
我尝试将这个程序转换成16位汇编,由于各种原因,最后并没有实现。但是也大致明白了这个程序所需的基本步骤,也就是抓取像素,保存在bmp文件中。
后来我去询问了我的汇编老师和在百度汇编语言吧里的大神相助,最终得到了编写这整个程序的基本思路,我会在第二个部分中具体阐述这个思路。
接下来就是查资料,无论是图书馆也好,还是网络也好,在查资料的过程中我受益匪浅,下面我会列出一些在编写这个程序中比较有用的链接和书籍:
书籍首先是我的教材,ibm-pc的汇编语言,其中的显示方式部分和读写像素部分十分重要。
链接有:http://www.cnblogs.com/xu_bright/archive/2008/11/05/1327519.html bmp文件的格式
http://blog.csdn.net/ppluer/article/details/51383097 win32汇编的屏幕截取
实验步骤和报告:
这里的主要是我的实验报告的内容,不过也大致上描述清楚了这个实验的原理,具体内容如下ÿ