




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 问题描述用汇编语言编写程序,该程序能打开并显示一个.bmp位图图像文件。原本设想该程序在命令提示符下输入文件路径后直接打开文件,但是在用DosBox测试时发现不能寻找系统路径,后来将程序改成直接打开当前文件夹下的某个文件,不再输入文件路径。这个程序对图片文件格式有一定的要求,首先显示模式为320*200的256色模式,故位图属性应该是256色位图,即位深度为8。2. 位图相关知识BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据
2、,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。BMP文件的数据按照从文件头开始的先后顺序分为四个部分:bmp文件头(bmp file header):提供文件的格式、大小等信息;位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息;调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表;位图数据(bitmap data):用来保存图像数据;色彩深度又叫色彩位数,即位
3、图中要用多少个二进制位来表示每个点的颜色,是分辨率的一个重要指标。常用有1位(单色),2位(4色,CGA),4位(16色,VGA),8位(256色),16位(增强色),24位和32位(真彩色)等。其中24位和32位位图中没有调色板。在这个实验中,因为程序显示模式为256色,于是我采用8位色彩深度的位图图片。因此,我用windows的画图工具制作了一个320*200大小的256色位图图片。如图所示:为了便于了解位图文件的组成结构,先用UltraEdit软件将上图打开,图片数据如下图所示: 位图各部分组成结构如下表所示:地址偏移大小(字节)数值(十六进制)说明0000h242 2D位图的类型000
4、2h436 FE 00 00文件大小(FE36H)0006h400 00 00 00保留位000Ah436 04 00 00位图数据开始的地址(0436H)000Eh428 00 00 00位图信息头的长度(Windows默认28)0012h440 01 00 00位图宽度(0140h=320)0016h4C8 00 00 00位图高度(00c8h=200)001Ch408 00 00 00每个像素位数(08h=28=256色)0036h256*400 00 调色板信息0076h6400000 40 图像数据,彩色调色板的索引号3. 数据结构在程序中,需要用到几个由数组组成的缓冲区。1、保存文
5、件头信息的head,占54个字节2、保存调色板信息部分的color,占1024个字节3、图片数据信息部分datas,占64000个字节4. 算法描述读取失败打开失败打开失败读取成功打开成功打开文件读取文件设置显示模式结束向显存地址写入图像数据设置调色板信息5. 效果与测试情况测试图片:6. 分析与讨论实验中出现的问题及解决办法:1、问题:程序运行时停在一步没有反应; 分析:猜测是文件并没有打开成功或者读取文件失败,无法继续程序,而我当时没有加入文件打开失败的处理代码,因此程序无法继续进行; 解决方法:在源代码中加入文件打开失败和文件读取失败的处理代码。2、问题:用问题1的解决方法之后一直提示文
6、件打开失败;分析:经过测试发现在使用虚拟机DosBox测试程序时不能识别图片文件路径,导致找不到文件,因此无法打开; 解决方法:删去文件名前面的路径,改成直接打开当前目录下的文件,但需提前在源程序文件夹下放置测试图片;仍需解决的问题:1、只能处理一种类型的图片,且对文件尺寸大小和色彩深度有要求,程序兼容性不高;7. 参考资料1沈美明,温冬婵. IBM-PC汇编程序设计. 北京:清华大学出版社,20018. 源代码data segmentfile db weitu256.bmp,00headdb 54 dup(0);位图头信息部分00h-35hcolor db 1024 dup(0);调色板信息
7、部分36h-0435hdatas db 64000 dup(0);图片数据信息部分,0436h-fa36herror1 db failed to open file!,24herror2 db failed to read file!,24hdata endsstacks segment stackdw 100 dup(0)top label wordstacks endscode segment assume cs:code,ss:stacks,ds:datamain proc farmov ax,datamov ds,axmov ax,stacksmov ss,axlea sp,top;只
8、读方式打开文件mov ah,3dhmov al,00hlea dx,fileint 21hjc openError;将文件读入内存从bmphead开始的数据缓冲区mov bx,ax;bx=文件代号mov ah,3fhmov cx,0fe36h ;cx=读取的字节数,即图片文件大小lea dx,headint 21hjc readError;设置显示模式 256色,320200像素mov ax,0013hint 10h;设置调色板,输出(OUT)色彩索引号,共写256次mov cx,256mov bl,0mov di,0L1:mov al,blmov dx,03c8hout dx,almov d
9、x,03c9hmov al,colordi+2;位图中调色板存放格式:shr al,1shr al,1out dx,al;dx=端口号mov al,colordi+1shr al,1shr al,1out dx,almov al,colordishr al,1shr al,1out dx,aladd di,4inc blloop L1;向显存地址写入数据mov ax,0a000h;显存地址(0A000:00000A000:0F9FF)mov es,ax;位图中图像由底向上自左向右存储,;而显示屏上要求从上至下mov di,63680d;320*199lea si,datas;故从底写至上,写图像索引号及RGB数据mov bx,200loop2:mov cx,320loop1:mov al,simov es:di,alinc si;指向该行下一像素inc diloop loop1sub di,640;写上一行,320+320dec bxcmp bx,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国纳米纤维非织造布行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国石油国家表格产品(OCTG)行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国平板折弯机行业市场现状供需分析及投资评估规划分析研究报告
- 良性脂肪瘤样肿瘤护理常规
- 海洋装备维护系统行业的市场分析报告
- 中国南方航空的营销布局解读
- 绿色能源技术发展及产业应用前景研究报告
- 如何把握这一行业的可持续发展之路
- 国货崛起背景下的国产化妆品行业发展趋势研究报告
- 推进中期规划管理办法
- 2025年农村经济与农业发展考试试题及答案
- 14.3角的平分线第1课时角的平分线的性质课件人教版数学八年级上册
- 2024年云南省文山州州属事业单位选调工作人员笔试真题
- 加油站气象灾害综合应急预案 2024
- 国家职业标准 -碳排放管理员
- 党支部书记培训考试题及答案
- 房地产企业开发成本财务培训
- GB/T 9144-2025普通螺纹优选系列
- 药厂车间员工管理制度
- 2025安全生产法律法规专题知识培训
- PLC物料自动分拣系统毕业设计开题报告(共6页)
评论
0/150
提交评论