资源描述:
《汇编语言课程设计归纳总结报告归纳总结报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、湖南农业大学课程设计报告学院:班级:姓名:学号:课程设计题目:编密码课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月日-8-目录概述…………………………………………………………3一 设计内容与要求………………………………………3二 设计思想…………………………………………………3三 程序流程图……………………………………………4四 程序源代码……………………………………………5五 效果图…………………………………………………7六 设计过程中遇到的问题及解决方法……………………7七 设计心得……………………
2、……………………………7-8-编密码概述汇编语言:是用英文缩写形式的助记符书写指令。汇编语言是一种面向CPU指令系统的程序语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。用汇编语言编写程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程成为汇编,完成汇编任务的程序称为汇编程序。所以我在MASM汇编程序中进行汇编,通过相应的代码来调用相应的指令实现编密码。一、设计要求(小标题一律用宋体小四加粗)要求:按照以下规律编密码:1.字母A变为E,a变为e即是字母变成其后面的第4个字母。2
3、.但Ww变Aa,Xx变Bb,Yy变Cc,Zz变为Dd.3.非字母不变如1234567890,!@$4.并可以循环转换5.例如“123CHINA@”变为“123GLMRE@”二、设计思想首先,先定义两个缓存区,一个用来存放输入的密码(BUF2),一个用来存放变换后的密码(BUF3)。先输入一个十位数内的密码,然后一一对一个个字符进行判断。先判断ascall是否小于41H,如果是则不是字母那就不变换直接转到read1,存入BUF3。如果大于41H在判断是否大于61H即判断是不是小写的,如果小于的话在判断大于5bH吗?如果大于则不是字母那
4、就不变换直接转到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缓存区的数据清空,在回到start
5、1,重新输入一个字符串并对它进行编密码转换。-8-三、流程图输入一个字符串取一个字符小于41H?是read1小于61H?否是read6小于5BH?否read1小于77H小于57H否read5是read2小于7BH是read4否read3否read1是read4对该字符加4是read3对该字符减22将字符存入BUF3Edi加1显示变换后的字符串-8-四、程序源代码includeio32.inc.datamas1byte'*************************************',13,10,0mas2byte'**编
6、密码**',13,10,0mas3byte'*************************************',13,10,0BUF1byte'Pleaseinputrandomstring,endwithEnterkey:';提示输入BUF2dword10dup(0);存放输入的字符,假设最多10个字符BUF3dword?;存放转换过的字符.codestart:moveax,offsetmas1calldispmsgmoveax,offsetmas2calldispmsgmoveax,offsetmas3calldisp
7、msgstart1:moveax,offsetBUF1calldispmsgmoveax,offsetBUF2callreadmsg;输入一个字符串movesi,0movecx,lengthofBUF2;字符串的长度movedx,offsetBUF2;EDX指向输入缓冲区movedi,offsetBUF3again:moval,[edx];取一个字符incedxcmpal,0jzzuicmpal,41H;判断是不是字母jcread1;是数字转到read1cmpal,61H;判断是不是小写jcread6;小于是大写cmpal,77H;
8、是不是超过小写zjaeread5;大于等于jmpread4;小写加4read1:mov[edi],alincedijmpagain-8-read2:cmpal,57h;超过大写Zjaeread3addal,04H;是大写,先+4mov