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

下载本文档

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

文档简介

1、湖南农业大学课程设计报告学院:班级:姓名:学号:课程设计题目:编密码课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月日- 1 -目录33345777- 2 -编密码概述汇编语言:是用英文缩写形式的助记符书写指令。汇编语言是一种面向 CPU 指令系统的程序语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。用汇编语言编写程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程成为汇编,完成汇编任务的程序称为汇编程序。所以我在 MASM 汇编程序中进行汇编,通过相应的代码来调用相应的指令实现编密码。一、设计要求(小标题一律

2、用宋体小四 加粗)要求:按照以下规律编密码: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。如果大于

3、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。最后将变

4、换后的密码输出来。输出后并将其转到 qing ,既将 BUF2和 BUF3缓存区的数据清空,在回到 start1 ,重新输入一个字符串并对它进行编密码转换。- 3 -三、流程图输入一个字符串取一个字符是 read1小于41H?否小于61H?小于77H是 read4是 read6否 read1小于5BH?否 read5是 read2小于否 read357H小于否 read17BH是 read4是 read3对该字符加4对该字符减22将字符存入BUF3Edi 加 1- 4 -显示变换后的字符串4、程序源代码include io32.inc.datamas1byte *,13,10,0mas2byt

5、e * 编密码 *,13,10,0 mas3byte *,13,10,0BUF1 byte Pleaseinput random string,end with Enter key:; 提示输入BUF2 dword 10 dup(0);存放输入的字符,假设最多 10 个字符BUF3 dword ?;存放转换过的字符.codestart:mov eax,offsetmas1call dispmsgmov eax,offsetmas2call dispmsgmov eax,offsetmas3call dispmsgstart1:mov eax,offsetBUF1call dispmsgmov

6、eax,offsetBUF2call readmsg; 输入一个字符串mov esi,0mov ecx,lengthofBUF2;字符串的长度mov edx,offsetBUF2; EDX 指向输入缓冲区mov edi,offsetBUF3again:mov al,edx; 取一个字符inc edxcmp al,0jz zuicmp al,41H;判断是不是字母jc read1;是数字转到 read1cmp al,61H;判断是不是小写jc read6;小于是大写cmp al,77H;是不是超过小写 zjae read5;大于等于jmp read4;小写加 4read1:mov edi,al-

7、 5 -inc edijmp againread2:cmp al,57h;超过大写 Zjae read3add al,04H;是大写,先 +4mov edi,alinc edijmp againjmp read4read5:cmp al,7BH;不是小写字母jae read1jmp read3read6:cmp al,5BHjc read2;小于是小写的jmp read1read3:subal,22 ;减 22jmp read1read4:add al,04Hmov edi,alinc edijmp againloop againzui:mov eax,offsetBUF3call dispm

8、sgcall dispcrlfmov edx,offsetBUF2; 清空缓存区mov edi,offsetBUF3mov ecx,10mov esi,0qing:mov edx,esimov edi,esiloop qingjmp start1exit 0end start5、效果图- 6 -6、遇到问题及解决方法在开始编好程序的时候,我发现输出的并不是我想要的结果,后来在调试程序中我用 -t 指令进行逐步运行程序,我才发现我的错误之处。原来我在程序的里面没有注意看 wyzx 的转变,后来在加了两个判断,并将wxyz 减 22 得到相应的 abcd,在改正之后,整个程序就运行得到我想要的结果

9、了。七、体会和心得体会:在做实验之前,我有很多的指令不熟悉,不少指令都不会用,通过做实验,我对这些指令更加熟悉,用起来更加熟练。有很多问题,不通过做实验,可能永远也不会知道。也许很多知识我们也知道,当在真正解决问题时,不一定能够想到。只有通过做实验,我才对很多知识有了更深的认识。在做实验时,我也碰到很多问题,正是通过分析这些问题,解决这些问题,我才逐渐真正掌握了某些知识。以前看书的时候,我感觉很多知识我似乎也会- 7 -了,某些题目我似乎也能解决了。但是真正做起实验,我才发现,实际上我还有很多知识没有掌握好。通过实验的学习,我对学习汇编语言有了一个更深的认识。同时,我也真正认识到,学习这些计算机语言,只有通过大量的实验才能够真正的掌握那些知识。也只有通过实验才能够让我们意识到自己的不足之处,从而改正。在做实验的过程中,我通过调试,让我解决了很多问题,也让我以前一些不理解的知识变得更加明白。最重要的是让我对一些知识有了深刻的印象,不容易遗忘。意见:我想,可以用来做汇编实验的软件有很多,依我看来,这是完全没有必要的,我

温馨提示

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

评论

0/150

提交评论