版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、院 系:计算机科学学院专 业: 计算机科学与技术年 级: 2012 级课程名称:汇编语言学 号:2012213537姓 名:郑凯伦扌旨导教师:雷建云2014年6 月18日年级2012专业计算机科学与技术班号1202 班实验名称实验2.1计算成绩总分和平均分学号2012213537姓名郑凯伦实验设计型综合型创新型类型设计型I/O宏掌握顺序程序设计的基本方法和技巧,熟练使用基本的 程序要结构化,简明、易读和易调试。执行速度较快且占用存储空间少。程序设计流程:1 .程序接收用户键入的 4个成绩,并计算出这4个成绩的总分和平均分数。在用户键入每个成绩和显示总分和平均分数之前都要有相应的提示信息。当用户
2、输入的成绩不在0,100之间时,显示错误信息并重新等待正确输入。2.首先在数据段中定义提示信息、累计总分变量sum和平均分数变量 average。程序一开始初始化sum值为0,当用户每输入一个成绩后累加到sum中。4个成绩输入完成后,sum内的值除以4得到平均分数并保存到 average中。最后显示计算结果。代码:;Example assembly language program - adds four numbers to calculate theirs average;Author:Karllen;Date:10/5/2014.386 .MODEL FLATExitProcess PR
3、OTO NEAR32 stdcall, dwExitCode:DWORDINCLUDE io.h;header file for input/outputcrEQU0dh;carriage return characterLfEQU0ah;line feed.STACK4096;reserve 4096-byte stack.DATApromot1 BYTE"Please Enter four numbers to caclute the average",cr,Lf, 0promot2 BYTE"Please Enter a number from 0 to 1
4、00! ",0promot3 BYTE"The number isn't from 0 to 100,please Enter a right number ",0value BYTE16 DUPnumber DWORDsum DWORDanswer BYTE"The four numbers' average is "aveBYTE11 DUPBYTEcr,LF,0.CODE_start:output promotlmovsum,0movebx,0firstagain:outputpromot2inputvalue,16ato
5、dvaluejudge:cmpeax,100;num >100转移重新输入jgdoifcmpeax,0;num <0转移重新输入jldoifjmpaddSum;满足 0<=num<=100doif:output promot3 input value,16 atod value jmp judge addSum:inc ebxadd sum,eax实验原理算法流程cmpebx,4jnefirstagain;end firstagainmoveax,sumcdq;将sum拓展为64位idivebxdtoa ave,eaxoutput answerINVOKE ExitPr
6、ocess, 0; exit with return code 0PUBLIC start;make entry point publicEND;end of source code年级2012 级专业计算机科学与技术班号1202 班实验名称实验3.1分类统计字符个数学号2012213537姓名郑凯伦实验设计型综合型创新型类型设计型的或要求掌握分支程序设计的原理和方法,重点掌握各种分支程序中形成和判断条件而 产生的程序设计的设计方法和技巧。掌握如何产生条件,如何对条件判断,如何实现分支。程序设计流程:1、程序接收用户输入的一行字符(字符个数不超过 80个,该字符串以回车符结束), 并按字母、数
7、字及其它字符分类计数,然后将结果分别显示出来。要求有信息提示用户 按照要求输入字符串,三类字符的个数分别在三行显示,并指明是哪类字符。;Example assembly language program -;Author:Karllen;Date:revised 5/2014.386.MODEL FLATExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORDINCLUDE io.h;header file for input/outputcrEQU0dh;carriage return characterLfEQU0ah;line feed.STA
8、CK4096;reserve 4096-byte stack.DATApromotBYTE "请输入一段字符串,分别统计字母,数字,和其他字符的个数",cr,Lf,0valueBYTE 1 DUPanswerLetterBYTE "字母的个数:letterBYTE 11 DUP(?)BYTE cr,Lf, 0aswerNumberBYTE "数字的个数:numberBYTE 11 DUP(?)BYTE cr,Lf, 0answerOtherBYTE "其他字符的个数:otherBYTE 11 DUP(?)BYTE cr,Lf, 0.CODE_s
9、tart:mov eax,0mov ebx,0mov ecx,0output promotwhile:input value,1cmp value,0dhjeendWhile;如果回车则结束cmp value,30h;30h = 0jlforOther;小于30h为字符;下面执行大于等于30hcmp value,3Ah;39h = 9jlforNumber;小于3Ah为数字;下面执行大于等于3Ah实cmp value,41h;小于41h为字符验jlforOther;41h = A原;下面执行大于41h理cmp value,5Bh;小于5Bh为大写字母(jlforLetter;5Bh = |算;
10、下面执行大于5Bh法cmp value,61h;61h = a流jlforOther程;下面执行大于61h)cmp value,7Bh;7Bh = jlforLetter;下面执行7Bh到结束jmp forOtherforLetter:inc eaxjmp whileforNumber:inc ebxjmp whileforOther:inc ecxjmp while(写不完时,可另加附页。)实验原理算法流程endWhile:dtoa letter,eaxdtoa number,ebxdtoa other ,ecxoutput answerLetteroutput answerNumberou
11、tput answerOtherINVOKE ExitProcess, 0; exit with return code 0PUBLIC _start; make entry point publicEND; end of source code年级2012 级专业计算机科学与技术班号1202 班实验名称-实-验目的或要求实验4.1求毕达哥拉斯三角形的边学号2012213537姓名郑凯伦实验设计型综合型创新型类型设计型掌握循环程序设计的原理和方法,重点掌握循环程序结构的形式和常用循环程 序的控制方法和技巧。要求学会置循环参数的初值,掌握循环体构成,学会如何实现循环控制。设计流程:1. 一个毕达
12、哥拉斯三角形的三条边是由三个正整数A、B和C组成,从而A2+B2=C2。例如,数字 3、4、5,由于9+ 16= 25,而形成一个毕达哥拉斯三角形。写一段完 整的汇编程序,实现输入一个值给三角形。例如,如果输入C,然后显示值为 C时,所有可能的毕达哥拉斯5作为C的值,那么输出可以是:2.由于C边的值已经给定,直到等于C 1 ;内循环将B值设为1,每次循环加1,直到等于C 1。在内循环 中如果A2+B2=C2成立,则当前的A、B、C是一个毕达哥拉斯三角形的边,并显示, 如果不成立,继续循环。建立一个双重循环, 外循环将A初值设1,每次循环加1 ,代码:实 验 原 理;Example assemb
13、ly language program -;Author:Karllen;Date:revised 5/2014.386.MODEL FLATINCLUDE io.h;header file for input/outputcrEQU0dh;carriage return characterLfEQU0ah;line feedExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD.STACK 4096;reserve 4096-byte stack.DATApromot BYTE "Please Enter a number as the
14、 max slide ",0valueBYTE 40 DUPncDWORD ?naDWORD ?nbDWORD ?nDWORD ?answer BYTEcrLf BYTE cr,Lf,0.CODEABC ",0;start of main program codestart:movmovebx,0ecx,0实验原理算法流程output promot input value,40 atod valuemov nc,eaxmov n, eaxmul ncmov nc,eax ;C*Coutput answeroutput crLfdoFirstWhile:inc ebxmov
15、ecx,0cmp ebx,njge endFirstWhile;大于等于n则转移mov eax,ebxmul ebxmov na,eax;A*AdoSecondWhile:inc ecxcmp ecx,njge endSecondWhile ;大于等于n则转移;执行比较mov eax,ecxmul ecxmov nb,eax mov edx,nbadd edx,na cmp edx,ncjne stanlf;B*B;A*A+B*B;不等于则转移实验原理算法流程;output answerdtoa value,ebxoutput valuedtoa value,ecxoutput valuedt
16、oa value,noutput valueoutput crLfjmp doSecondWhilestanIf:jmp doSecondWhileendSecondWhile:jmp doFirstWhileendFirstWhile:INVOKE ExitProcess, 0 ; exit with return code 0PUBLIC start;make entry point publicEND;end of source code年级2012 级班号1202 班学号2012213537专业计算机科学与技术姓名郑凯伦实验名称实验5.1数组排序实验类型设计型综合型创新型设计型实 验
17、目 的 或 要 求一、掌握子程序设计的原理和方法,重点掌握子程序编写和调用的过程以及堆栈操 作和参数以及局部变量的概念。二、学会编写子程序,在主程序中调用子程序,能良好的实现子程序的参数传递。设计流程:1.给定一个数组,数组包含10个整型元素,将其按照从小到大的顺序排列后输出,要求排序的算法用子程序来实现。例如,输入的数组元素为1,3,-9,5,12,0,-3,-12,24,34,那么输出是:-12,-9,-3,0,1,3,5,12,24,34。2.本程序采用冒泡排序对数组内的元素进行排序。;Example assembly language program - adds two number
18、s;Author:karllen;Date:revised 5/2014.386.MODEL FLATExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORDINCLUDE io.h;header file for input/output实 验 原 理crEQU0dh;carriage return characterLfEQU0ah;line feed.STACK4096;reserve 4096-byte stack.DATAiDWORD ?jDWORD ?tempDWORD ?promot1 BYTE "Please Enter t
19、en numbers to sort from min to max",cr,Lf,0 array DWORD 10 DUPpromot2 BYTE "The numbers that are sorted is",cr,Lf,0value BYTE 11 DUP(?)BYTE cr,Lf,0.CODEsortArray PROC NEAR32push ebpmov ebp,espmov i,0mov edx,10;mov ebx,ebp+8sortFirst:mov ebx,ebp+8 inc icmp i,9jg endsortFirstsub edx,imo
20、v j,0;建立堆栈;取得数组地址;大于9则跳转,;求 edx-isortSecond:inc jcmp j,edx jg endsortSecond mov eax,ebxmov ecx,ebx+4cmp eax,ecx jl endCMP;大于10-i则转移;cmp ebx,ebx+4;ebxvebx+4则转移实验原理算法流程mov edx,eaxmov ebx,ecxmov ebx+4,edx;swapendCMP:add ebx,4mov edx,10jmp sortSecond endSortSecond:jmp sortFirstendsortFirst:pop ebpretsor
21、tArray ENDP实验原理算法流程start:output promotlmov ecx,0leaebx,arraydoFirstWhile:inc ecxcmp ecx,10jg endFirstWhile ;大于 10 则结束input value,11atod valuemov ebx,eaxadd ebx,4jmp doFirstWhileendFirstWhile:lea eax,arraypush eaxcall sortArrayadd esp,4output promot2movecx,0leaebx,arraydoSecondWhile:inc ecxcmp ecx,10
22、jg endSecondWhiledtoa value,ebxoutput valueadd ebx,4jmp doSecondWhileendSecondWhile:INVOKE ExitProcess, 0;exit with return code 0PUBLIC start;make entry point publicEND;end of source code年级2012 级专业计算机科学与技术班号1202 班实验名称实验6.1 比较两个字符串学号2012213537姓名郑凯伦实验设计型综合型创新型类型设计型的或要求掌握串操作的用法,熟悉基本的串操作指令。 根据前面的所学知识,掌握
23、对串操作的应用。1.2.流程分析:写一程序,比较两个字符串String1和String2所含的字符是否相同;若相同则显示'Match',否则显示'N o Match'。输入两个字符串之后,将串操作所必须的寄存器等参数设置好,然后使用串操作指 令进行从头到尾的比较,两个字符串相等的条件是串长度相等且对应的字符相同。代码如下:;Example assembly language program -;Author:Karllen;Date:revised 5/2014.386实 验 原 理.MODEL FLATExitProcess PROTO NEAR32 stdc
24、all, dwExitCode:DWORDINCLUDE io.h;header file for input/outputcrEQU0dh;carriage return characterLfEQU0ah;line feed.STACK4096;reserve 4096-byte stack.DATAstr1BYTE 80 DUPstr2BYTE 80 DUP(?)valueBYTE 11 DUP(?)length1DWORD ?length2 DWORD ?promotl BYTE "Please Enter String1",cr,Lf,0 promot2 BYTE
25、 "Please Enter String2",cr,Lf,0 crlf BYTE cr,Lf,0 answerYes BYTE "Match",cr,Lf,0answerNo BYTE "No Match",cr,Lf,0PUBLIC _start; make entry point public.CODE; start of main program code_start:output promot1input str1,80lea eax,str1push eaxcall strlenadd esp,4mov Iength1,eaxdtoa value,eaxoutput valueoutput crlfoutput promot2 input str2,80 le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国木瓜果酒行业市场竞争力策略及未来5发展趋势报告
- 2024-2030年中国服装行业营销策略及未来5发展趋势报告
- 2024至2030年中国植绒吸塑首饰盒行业投资前景及策略咨询研究报告
- 2024-2030年中国智慧园区行业发展模式规划分析报告
- 2024-2030年中国数据中心IT基础设施第三方服务行业发展模式及投资规模分析报告
- 齿轮箱课程设计书
- 2024-2030年中国摩托车铁制构件项目可行性研究报告
- 2024-2030年中国排汽管产业未来发展趋势及投资策略分析报告
- 2024-2030年中国拍卖行业经营创新模式及未来发展策略分析报告
- 2024至2030年硒酸酯多糖项目投资价值分析报告
- 小学安全教育人教四年级上册安全生活家庭燃气泄漏的预防和处理 课件
- 综合管理部综合办公室工作交接表
- 中小学生营养知识、态度、行为及膳食多样性调查问卷
- 部编版语文五年级上册第六单元(复习课件)
- 【管理】朗诵《我骄傲-我是中国人》汇编课件
- 点估计的评价标准
- 全国导游基础知识-中国四大宗教-佛教
- 内部控制案例第07章案例20 华为内控
- 深化设计方案(完整版)
- 厦门大学《细胞生物学》期末试题及答案
- 假天狮传销课程
评论
0/150
提交评论