汇编语言课程设计报告报告.doc_第1页
汇编语言课程设计报告报告.doc_第2页
汇编语言课程设计报告报告.doc_第3页
汇编语言课程设计报告报告.doc_第4页
汇编语言课程设计报告报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南农业大学课程设计报告学 院: 班 级:姓 名: 学 号:课程设计题目:编密码课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期: 年 月 日- 8 -目 录概述 3一设计内容与要求 3 二设计思想 3 三程序流程图 4 四程序源代码 5 五效果图 7 六设计过程中遇到的问题及解决方法 7七设计心得 7编密码概述 汇编语言:是用英文缩写形式的助记符书写指令。汇编语言是一种面向CPU指令系统的程序语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。用汇编语言编写程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程成为汇编,完成汇编任务的程序称为汇编程序。所以我在MASM汇编程序中进行汇编,通过相应的代码来调用相应的指令实现编密码。 一、设计要求(小标题一律用宋体 小四 加粗)要求: 按照以下规律编密码:1. 字母 A 变为 E,a 变为 e即是字母变成其后面的第 4 个字母。2. 但Ww变 Aa,Xx 变 Bb,Yy 变 Cc,Zz 变为 Dd.3. 非字母不变如1234567890,!$4. 并可以循环转换5. 例如“123CHINA”变为“123GLMRE”二、设计思想 首先,先定义两个缓存区,一个用来存放输入的密码(BUF2),一个用来存放变换后的密码(BUF3)。先输入一个十位数内的密码,然后一一对一个个字符进行判断。先判断ascall是否小于41H,如果是则不是字母那就不变换直接转到read1,存入BUF3。如果大于41H在判断是否大于61H即判断是不是小写的,如果小于的话在判断大于5bH吗?如果大于则不是字母那就不变换直接转到read1,存入BUF3。如果小于的话,在判断是不是大于w的ascall,如果大于就转到read3,减22在,存入buf3.否则转到read4,加4在存入BUF3。如果大于等于61H的话,同样的道理,判断是否大于W,如果大于在判断大于7AH吗。判断是不是字母,如果不是那就不变换直接转到read1,存入BUF3。否则转到read3减22,在存入BUF3。如果没有大于77H,直接转到read4,加4在存入BUF3。最后将变换后的密码输出来。输出后并将其转到qing,既将BUF2和BUF3缓存区的数据清空,在回到start1,重新输入一个字符串并对它进行编密码转换。 三、流程图输入一个字符串取一个字符小于41H?是read1小于61H? 否是read6小于5BH?否read1小于77H小于57H 否read5是read2小于7BH是read4否read3否read1是read4对该字符加4是read3对该字符减22将字符存入BUF3Edi加1显示变换后的字符串4、 程序源代码 include io32.inc.datamas1 byte *,13,10,0mas2 byte * 编密码 *,13,10,0mas3 byte *,13,10,0BUF1 byte Please input random string,end with Enter key:;提示输入BUF2 dword 10 dup(0);存放输入的字符,假设最多10个字符BUF3 dword ?;存放转换过的字符.codestart: mov eax,offset mas1 call dispmsg mov eax,offset mas2 call dispmsg mov eax,offset mas3 call dispmsgstart1:mov eax,offset BUF1 call dispmsgmov eax,offset BUF2call readmsg; 输入一个字符串 mov esi,0 mov ecx,lengthof BUF2 ;字符串的长度mov edx,offset BUF2; EDX指向输入缓冲区 mov edi,offset BUF3again:mov al,edx; 取一个字符 inc edx cmp al,0 jz zuicmp al,41H;判断是不是字母 jc read1;是数字转到read1 cmp al,61H;判断是不是小写 jc read6;小于是大写cmp al,77H;是不是超过小写z jae read5;大于等于 jmp read4;小写加4 read1: mov edi,al inc edi jmp againread2: cmp al,57h;超过大写Z jae read3 add al,04H ;是大写,先+4 mov edi,al inc edi jmp again jmp read4read5: cmp al,7BH;不是小写字母 jae read1 jmp read3read6: cmp al,5BH jc read2;小于是小写的 jmp read1read3: sub al,22 ;减22 jmp read1read4: add al,04H mov edi,al inc edi jmp again loop againzui: mov eax,offset BUF3 call dispmsg call dispcrlf mov edx,offset BUF2; 清空缓存区 mov edi,offset BUF3 mov ecx,10 mov esi,0qing: mov edx,esi mov edi,esiloop qing jmp start1 exit 0end start5、 效果图6、 遇到问题及解决方法 在开始编好程序的时候,我发现输出的并不是我想要的结果,后来在调试程序中我用-t指令进行逐步运行程序,我才发现我的错误之处。原来我在程序的里面没有注意看wyzx的转变,后来在加了两个判断,并将wxyz减22得到相应的abcd,在改正之后,整个程序就运行得到我想要的结果了。七、体会和心得体会:在做实验之前,我有很多的指令不熟悉,不少指令都不会用,通过做实验,我对这些指令更加熟悉,用起来更加熟练。有很多问题,不通过做实验,可能永远也不会知道。也许很多知识我们也知道,当在真正解决问题时,不一定能够想到。只有通过做实验,我才对很多知识有了更深的认识。在做实验时,我也碰到很多问题,正是通过分析这些问题,解决这些问题,我才逐渐真正掌握了某些知识。以前看书的时候,我感觉很多知识我似乎也会了,某些题目我似乎也能解决了。但是真正做起实验,我才发现,实际上我还有很多知识没有掌握好。通过实验的学习,我对学习汇编语言有了一个更深的认识。同时,我也真正认识到,学习这些计算机语言,只有通过大量的实验才能够真正的掌握那些知识。也只有通过实验才能够让我们意识到自己的不足之处,从而改正。在做实验的过程中,我通过调试,让我解决了很多问题,也让我以前一些不理解的知识变得更加明白。最重要的是让我对一些知识有了深刻的印象,不容易遗忘。意见:我想,可以用来做汇编实验的软件有很多,依我看来,这是完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论