ImageVerifierCode 换一换
你正在下载:

汇编.docx

[预览]
格式:DOCX , 页数:18 ,大小:129.33KB ,
资源ID:9963296      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9963296.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编.docx

1、汇编JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 汇编语言实验报告 学院名称: 计算机工程学院 专 业: 计算机技术与应用 班 级: 10计2Z 姓 名: 徐玲玲 学 号: 10141224 2012 年 12 月 目录1. 绪论2. 概要设计2.1 系统总体分析2.2 设计流程图及说明3.详细设计3.1 主模块及子模块说明3.2 功能模块详细设计4.程序调试4.1 运行界面分析4.2 运行结果界面4.3算法的分析4.4 调试过程及分析5.心得体会5.1 设计体会5.2 系统改进参考文献附录打印出一个文字摘要:本课程设计师通过使用汇编语言来完成的,具体实现

2、的方法可以通过在MASM使用环境下运行,也可以通过在DOS环境下完成。我做的课程设计是通过编写语言程序,实现一个文字的显示。我显示的字符是“仁”,主要使用了汉字库16点阵画点法来实现汉字的显示,在程序设计中,首先确定了文字的显示位置,为在显示的时候能够显示较好的效果,打下了基础。接着程序的编写,在编写过程中对于一些陌生的操作都进行了注释,最后调试出所要求的文字。本程序可以再DOS环境和MASM环境下运行,要求我们熟悉BIOS中断10的各种功能。整个程序设计的过程,是一个不断学习、不断实践的过程,从而提高了我们的编程能力和程序开发思想,也提高了我们自主学习的能力。关键词:文字显示,10号中断,B

3、IOSAbstract: the curriculum designer through the use of assembly language to complete, the specific implementation of the method can be used in MASM environment running, can also pass in DOS environment. I do curriculum design is by writing language program, the realization of a text display. I show

4、 the character is benevolence, the main use of Chinese characters library 16 lattice point method to realize the Chinese characters display, in the program design, first determine the text display position, as when displayed to show good effect, laid a foundation. Then the program, in the preparatio

5、n process for some strange operation for annotation, the final commissioning of the required text. This procedure can be DOS environment and the MASM environment running, ask we are familiar with the various functions of BIOS interrupt 10. The whole process of program design, is a continuous learnin

6、g, continuous practice process, thereby improving our ability of programming and programming ideas, improve our ability of independent learning.Key words: text display, 10, interrupt, BIOS1. 绪论在课程设计之前,首先要明确设计的目的。本次课程设计的题目是一个文字的显示,要求我们能够编写一个汇编程序,正确的显示所要求的汉字。这就需要我们对汇编指令有一定的了解,通过课程设计,我们能更深入的了解汇编程序的基本框架

7、,更熟练的运用汇编指令。在本课程设计中,还着重运用了BIOS10号中断调用及其功能,这就要求我们在这一个小模块有更深的学习。通过课程设计,可以提高我们的动手能力,培养我们对编程及学习的兴趣。通过编写程序使我们对指令的应用更加熟练。同时,也使我们对masmedit软件和dos命令有了更多的学习和了解。目的在于培养我们的自主学习能力和动手能力,提高我们的编程水平。在课程设计中,我们也要学会交流,与同学之间互相取长补短,达到共同进步,达到想要达到进步的目的。Masm for windows 集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的一个简单易用的汇编语言学习与实验软件,支持3

8、2位与4位的WINDOWS 7,支持DOS的16/32位汇编程序和Windows下的32汇编程序(并提供调试通过的35个WINDOWS汇编程序实例源代码),它具有错误信息自动定位、关键字实时帮助并且在帮助中动画演示汇编指令的执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定位、支持中文、长文件名等功能。2. 概要设计2.1 系统总体分析本程序是显示一个文字的程序,我显示的字符是“仁”,主要使用了汉字库16点阵画点法来实现汉字的显示,在程序设计中,首先确定了文字的显示位置,为在显示的时候能够显示较好的效果,打下了基础。通过16点阵的设计,点出“仁”这个汉字,得以显示出来。为了清晰地

9、看到每一个字,需要放大,程序中编写了放大功能的程序。此外,程序中还有清屏子程序,通过适当的改变放大位置,可实现图形的放大。2.2 设计流程图及说明3.详细设计3.1 主模块及子模块说明本程序是通过16点阵的设计显示一个文字的程序,我显示的字符是“仁”,主要使用了汉字库16点阵画点法来实现汉字的显示,在程序设计中,首先确定了文字的显示位置,为在显示的时候能够显示较好的效果,打下了基础。为了清晰地看到每一个字,需要放大,程序中编写了放大功能的程序。此外,程序中还有显示子程序show proc near,清屏子程序clears proc near,通过适当的改变放大位置,可实现图形的放大。3.2 功

10、能模块详细设计1、“仁”字的定义ren dw300h,0,3c0h,0c0h,33fh,0fff0h,0f00h,0,0c00h,0,3c00h,0,0cc00h,0,0c00h,0,0c00h,0,0c00h,0,0c0,0h,0,0c00h,0h,0cffh,0fffch,0c00h,0,0c00h,0,0,02、字的初始化(初始位置,字体大小)row dw 50col dw 50off dw 36 ;每次要增加的距离lp1num db 0lp2num db 2lp3num db 0 ;第3层循环的次数,最大为16lp4num db 0lp5num db 0cmpnum dw 8000hn

11、 db 1 ;设置字体大小,默认一个象素画一个点3、设置屏幕显示方式320*200彩色方式mov ah,0h mov al,04h int 10h;调用中断 mov ah,0bh;置彩色调色板ID mov bh,0h mov bl,1;和ID配套使用的颜色 int 10h;调用中断 mov ah,0bh mov bh,01h mov bl,0 int 10h;调用中断4、功能设计 输入“q”则为退出程序,输入“+”则为放大文字。keyacc: mov ah,0 int 16h cmp al,q je exit;结果相等则转移 cmp al,+ je enlarge jmp keyacc enl

12、arge:inc n;n+1 cmp n,8 jbe gons;判断不高于则转移 dec n;n-1 gons: jmp xiansh.clears proc nearpush axpush bxmov ah,0fhint 10hmov ah,0int 10hpop bxpop axretclears endp code ends end start4.程序调试4.1 运行界面分析本程序可以在masm环境下运行,也可在DOS环境下运行,Masm for windows 集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的一个简单易用的汇编语言学习与实验软件,支持最新操作系统WIN

13、DOWS 7,支持DOS的16/32位汇编程序和Windows下的32汇编程序(并提供调试通过的35个WINDOWS汇编程序实例源代码),它具有错误信息自动定位、关键字实时帮助并且在帮助中动画演示汇编指令的执行过程、语法。4.2 运行结果界面4.3算法的分析 本次设计的思想便是利用点点来拼凑一个图形,调用放大子程序循环的输出不同位置的,直到所需的汉字字输出完,汉字的最终结果也就显示出来了。需要注意的是,汉字的大小由它前一次大小的基础放大确定。4.4 调试过程及分析 本程序可以在DOS环境和MASM环境下运行,在DOS环境下运行,首先用masm命令将源程序.asm进行编译,生成.obj文件;其次

14、,用Link命令进行连接,产生.exe文件;最后进入debug,用-g命令进行调试运行。值得注意的是,各个阶段产生的目标文件的文件格式不同,因此在输入命令的时候,要注意文件的后缀名。 若是在MASMEDIT软件下运行,则只需点击相应的功能按钮即可。用MASMEDIT软件运行的界面友好,视觉效果相对于DOS界面要好看。5.心得体会5.1 设计体会这次课程设计总体来说做得比较顺利。在设计前期,我翻阅了很多资料,加深了对汇编语言的学习,基本掌握了怎样运用汇编语言去设计字符图形,并制作出相应的流程图。程序中主要用到显示输出管理10号中断调用及其多种功能。我就这方面进行了深入的学习,掌握了各个功能的运用

15、。在设计前期,我查找了相关书记和资料,更加深入的学习了汇编指令和中断调用的知识,能够得以应用,并根据流程图,设计出程序的大概框架;在设计的中期,我将各个模块细化,并编写了子程序,并将主程序和子程序进行衔接;在设计的后期,我认真的检查了程序调用和参数传递等细节,保证程序的正确性。通过课程设计,我领悟到我们应该有一个缜密的编程思想,在编程过程中,首先要对整体程序有一个初步的框架构想,然后根据所学的知识,活用指令,能够使程序更加精简,这就要求我们对指令要熟悉。在日常生活中,可以通过编写一些小的程序,来熟悉指令的使用和记忆。在设计过程中也遇到了一些困难,通过和老师、同学的讨论和学习,最终程序得以完成,

16、所以,在完成每一件事情时,不能忽略团队的力量,应当吸取各人的优势,来使自己更加完善。5.2 系统改进虽然本程序基本满足了本次课程设计的要求,但其中依然有很多需要改进的地方。可以通过对BIOS10号中断的深入学习,使得界面更加美化。还有代码的简化,可以从平时的编程或者学习中,找到更好的方法来优化程序。程序中的子程序只是字符显示的部分功能,可以加以改进,使系统更加完善参考文献 1李敬兆. 8086/8088和基于ASM核汇编语言程序设计(第二版).合肥:中国科学技术大学出版社,20082沈美明,温冬婵.IBMPC汇编语言程序设计(第二版).北京:清华大学出版社出版,20073沈美明,温冬婵,张赤红

17、.IBMPC汇编语言程序设计实验教程.北京:清华大学出版社出版,20074李敬兆.8086/8088和基于ASM核汇编语言程序设计实验教材及习题解答.合肥:中国科学技术大学出版社,20085钱晓捷. 新版汇编语言程序设计M.北京:电子工业出版社,20066卜艳萍,周伟.汇编语言程序设计教程.北京:清华大学出版社,20077宋人杰,牛斗.汇编语言程序设计.北京:清华大学出版社,20088王爽.汇编程序设计语言.北京:清华大学出版社,2008附录code segmentassume cs:code,ds:codeorg 100h;org 伪操作用来设置当前地址计数器的值main proc fars

18、tart:jmp begin;汉字:仁ren dw 300h,0,3c0h,0c0h,33fh,0fff0h,0f00h,0,0c00h,0,3c00h,0,0cc00h,0,0c00h,0,0c00h,0,0c00h,0,0c00h,0,0c00h,0h,0cffh,0fffch,0c00h,0,0c00h,0,0,0;要显示的位置row dw 50col dw 50off dw 36 ;每次要增加的距离lp1num db 0lp2num db 2lp3num db 0 ;第3层循环的次数,最大为16lp4num db 0lp5num db 0cmpnum dw 8000hn db 1 ;设

19、置字体大小,默认一个象素画一个点begin:push ds xor ax,ax;清0 push ax mov ax,code mov ds,ax ;设置屏幕显示方式320*200彩色方式 mov ah,0h mov al,04h int 10h;调用中断 mov ah,0bh;置彩色调色板ID mov bh,0h mov bl,1;和ID配套使用的颜色 int 10h;调用中断 mov ah,0bh mov bh,01h mov bl,0 int 10h;调用中断 ;程序主体部分,3重循环 xianshi: ;清除屏幕 call clearsmov si,offset ren;offset:回

20、送变量或标号的偏移地址值 ;调用显示子程序,入口参数:si=要显示的汉字(用32个word存储的32*32的点阵) ;入口参数:col=要显示汉字的行,row=要显示汉字的列 ;显示汉字:仁 call show ;循环接收键盘响应,看是否输入+字符 keyacc: mov ah,0 int 16h cmp al,q je exit;结果相等则转移 cmp al,+ je enlarge jmp keyacc enlarge:inc n;n+1 cmp n,8 jbe gons;判断不高于则转移 dec n;n-1 gons: jmp xianshi ;程序退出exit: mov ah,0;恢复

21、屏幕原来的显示方式 mov al,2;黑白方式80*25 int 10h retmain endp ;显示汉字子程序,入口参数:si=要显示的汉字存储区首地址(用32个word存储的16*32的点阵) ;入口参数:col=要显示汉字的行,row=要显示汉字的列show proc nearpush axpush bxpush cxpush dxpush sipush word ptr rowpush word ptr col mov ah,0ch mov dx,row mov cx,col mov lp1num,0 lp1:mov lp2num,0 mov cx,col lp2:mov bx,s

22、i mov lp3num,0 mov cmpnum,8000h lp3:test bx,cmpnum jz wr2;结果为0则转移 mov al,2 push dx ;保护列值以便恢复 mov lp4num,0 lp4: push cx mov lp5num,0 lp5: int 10h;调用中断 inc lp5num;lp5num+1 inc cx;cx+1 push ax mov al,n cmp lp5num,al;比较 pop ax jb lp5;低于,或者不高于或等于,或进位位为1则转移 ag4:inc dx inc lp4num pop cx push ax mov al,n cm

23、p lp4num,al pop ax jb lp4 ;低于,或者不高于或等于,或进位为1则转移 jmp ag3;跳转ag3 wr2:mov al,0 push dx ;保护列值以便恢复 lp42:push cx mov lp5num,0 lp52: int 10h;调用中断 inc lp5num inc cx push ax mov al,n cmp lp5num,al pop ax jb lp52;低于,或者不高于或等于,或进位为1则转移 ag42: inc dx inc lp4num pop cx push ax mov al,n cmp lp4num,al pop ax jb lp42;

24、低于,或者不高于或等于,或进位为1则转移 ag3: pop dx shr cmpnum,1;右移 push ax mov al,n mov ah,0 add cx,ax pop ax inc lp3num cmp lp3num,16;cmp:比较 jb lp3;低于,或者不高于或等于,或进位为1则转移 ag2: add si,2 inc lp2num cmp lp2num,2 jb lp2ee;低于,或者不高于或等于,或进位为1则转移 jmp ag1 lp2ee:jmp lp2 ag1:push ax mov al,n mov ah,0 add dx,ax pop ax inc lp1num

25、cmp lp1num,16 jb lp1ee;低于,或者不高于或等于,或进位为1则转移 jmp exitshow lp1ee:jmp lp1exitshow:mov lp2num,0 mov lp3num,0 mov lp1num,0 mov cmpnum,8000h pop word ptr col;ptr:段间转移的操作符 pop word ptr row pop si pop dx pop cx pop bx pop axret;返回show endp;清除屏幕子程序clears proc nearpush axpush bxmov ah,0fhint 10hmov ah,0int 10hpop bxpop axretclears endp code ends end start

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1