产生随机数并运算_第1页
产生随机数并运算_第2页
产生随机数并运算_第3页
产生随机数并运算_第4页
产生随机数并运算_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉理工大学微机原理与接口技术课程设计说明书课程设计任务书学生姓名: 庞瀚文 专业班级: 电气1203 指导教师: 李道远 工作单位: 自动化学院 题 目:随机数小程序 初始条件: 利用随机数产生两个8位16进制数,显示它们加法或减法表达式及其运算结果。如果有进位,显示“Carry”的提示信息,如果被减数小于减数,显示“Borrow”的提示信息。按Q退出程序。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1) 设计任务及要求分析(2) 方案比较及认证说明(3) 系统原理阐述(4) 硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5) 软件设计课

2、题需要说明:软件思想,流程图,源程序及程序注释(6) 调试记录及结果分析(7) 总结(8) 参考资料(9) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图目 录1 设计任务22任务分析22.1 程序功能说明22.2 程序要点说明23功能及程序设计33.1主程序流程图33.2程序说明43.3 子程序功能说明43.3.1 RAND子程序说明43.3.2 CHG子程序说明43.3.3 程序退出判断语句说明54调试结果及分析65心得体会76参考文献8附录9随机数小程序1设计任务 利用随机数产生两个8位16进制数,显示它们加法或减法表达式及其运算结果。如果有进位,显示“Carry”的提示信息,

3、如果被减数小于减数,显示“Borrow”的提示信息。按Q退出程序。2任务分析2.1 程序功能说明 本程序需在DOS下运行。程序开始运行,程序完成初始化,输出提示信息。程序产生随机数1,随机数1转化为16进制ASC码并显示。程序产生随机数2,随机数2转化为16进制ASC码并显示。此时选择运算方式,输入“+”执行加法运算,输入“-”则执行减法运算。随机数1和随机数2完成已选择的运算方式,显示运算结果。在“+”法模式下,若运算结果产生进位,则显示提示信息“Carry”在选择“-”法模式下,若被减数小于减数,则显示提示信息“Borrow”。按“Q”退出程序,按其他任何键继续提示知道检测到“Q”按键。2

4、.2 程序要点说明1.随机数的产生,并显示2.将其转化为16进制数,并完成运算。3功能及程序设计3.1主程序流程图本程序流程图如图3-1所示。开始产生随机数1产生随机数2随机数1减随机数2等待输入 输入- 输入+显示结果随机数1加随机数2 有无借位显示结果 无借位有无进位 无进位 有借位 显示“borrow”信息 有进位显示“carry”信息是否按“Q” 输入其他 输入“Q”结束图3-1程序流程图3.2程序说明(1)调用随机数产生子程序产生8位数16进制数。(2)初始化屏幕,选择加法或者减法(3)等待从键盘输入的按键并判断.如果是“+”则跳转到加法运算程序段,首先显示出两个随机数及运算符号,随

5、后进行计算,显示运算结果及进位信息,有进位显示“CARRY”,无进位进行退出程序判断。如果是“-”则跳转到减法运算程序段,首先显示两个随机数及运算符号,随后进行计算,显示运算结果及借位信息,有借位显示“BORROW”,并调转到求补码子程序,无借位进行退出程序判断。 (5)等待从键盘输入的按键并判断。是 “Q”则退出程序,否则继续提示。3.3 子程序功能说明3.3.1 RAND子程序说明RAND子程序如下:RAND PROC STI MOV AH,0 INT 1AH RETRAND ENDP 该程序应用时钟计数产生4位16进制随机数,所以每个随机数要调用两次该程序,调用后输出的随机数在寄存器DX

6、中。3.3.2 CHG子程序说明CHG PROC PUSHF MOV CX,4AA2:mov dl,byte ptrsi and dl,0f0h ;高4位 shr dl,1 shr dl,1 shr dl,1 shr dl,1 call print_1 mov dl,byte ptrsi and dl,0fh ;低4位 call print_1 dec si loop AA2 POPF ;逐个字符输出 RETCHG ENDP 该程序将输入的字符转换成ASC码,调用INT21H 9号功能在屏幕上输出3.3.2退出程序判断语句 EXIT:LEA DX,QUE1 MOV AH,9 INT 21H M

7、OV AH,1 INT 21H CMP AL,'Q' JZ A3 ;判断,是Q则退出程序,其他字符继续提示 MOV DX,OFFSET C4 MOV AH,9 INT 21H JMP EXITA3: MOV AX,4C00H INT 21H4调试结果及分析图4-1加法运算图4-2减法运算图4-3程序退出判断 最终调试结果可以完全满足题目要求。5心得体会通过本次微机原理课程设计,使我深深的感受到了汇编语言的乐趣。汇编虽然是低级语言,但是正是因为低级,这也恰恰是它的优点,更接触底层硬件。通过汇编,可以更好的了解计算机系统的工作原理,而且把平时学到的理论知识和实践相结合,促进了课程的

8、学习。在编程的过程中,通过自己思考和查找资料使自己受益匪浅。汇编的过程中也遇到了一些问题,由于自己的粗心,某些符号的书写错误,也大大的降低了自己的工作效率。这次的课程设计使我对汇编语言编程的方法和技巧有了一定的掌握,加深了自己对8086CPU的寄存器,存储器的理解;基本掌握了8086的指令系统;汇编语言程序设计的基本方法,包括顺序结构程序设计,分支结构程序设计,循环结构程序设计;并涉及到了一部分宏汇编语言的技术;同时对BIOS的中断调用有了更深层次的理解。虽然本次课程设计整体有一些难度,但是,这段时间的学习和问题的解决,对自己专业知识的掌握有着非常重要的促进作用。通过这次课程设计,我最大的收获

9、就是自己的动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自去试着实践,亲自去经历才能对它们真正的掌握。最大的收获是更清晰了如何有条理的编程。第一个就是流程图,原来不以为然的事现在觉得非常的有必要。第二就是编程顺序,要写一个功能很复杂的程序首先写那些自己可以很快完成的较简单的内容,比如先编写产生随机数的程序,这样既可以使编程变得更有条理,而且对心态也是很有帮助的。一步一步的完成相应的要求会使自己的心情倍感舒爽而不是一直未能达到要求时的迷茫。凡事都要自己去动下手

10、,去实践一下,遇到困难,永远不要沮丧气馁。在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识;这次设计给了我极大的鼓舞和信心,相信在以后的学习中可以通过不断的摸索和实践来提高其他方面的知识。6参考文献1 彭虎、周佩玲微机原理与接口技术.第3版.电子工业出版社,2011.附录:源程序:DATA SEGMENT QUE DB '+ OR -',0DH,0AH,'$' QUE1 DB 'ENTER Q TO EXIT',0DH,0AH,'$' C1 DB '+' C2 DB '-' C3 D

11、B '=' C4 DB 0DH,0AH,'$' D1 DD ? D2 DD ? R DD ? CARRY DB 0DH,0AH,'CARRY',0DH,0AH,'$' BORROW DB 0DH,0AH,'BORROW',0DH,0AH,'$' DATA ENDS SST SEGMENT PARA STACK 'STACK' TOP DW 50 DUP(?)SST ENDSCODE SEGMENT ASSUME CS:CODE ,DS:DATA,SS:SSTSTART: MOV AX

12、,DATA MOV DS,AX CALL RAND MOV D1,DX CALL RAND MOV D1+2,DX CALL RAND MOV D2,DX CALL RAND MOV D2+2,DX MOV DX,OFFSET QUE MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,'+' PUSH AX LEA DX,C4 MOV AH,9 INT 21H POP AX JZ A1 CMP AL,'-' JZ A2 JMP EXITA1: LEA SI,D1+3 CALL CHG MOV DL,C1 MOV AH,2 INT

13、21H LEA SI,D2+3 CALL CHG MOV DL,C3 MOV AH,2 INT 21H MOV AX,D1 MOV DX,D2 ADD AX,DX MOV R,AX MOV AX,D1+2 MOV DX,D2+2 ADC AX,DX MOV R+2,AX LEA SI,R+3 CALL CHG JC CA JMP EXITCA: LEA DX,CARRY MOV AH,9 INT 21H JMP EXITA2: LEA SI,D1+3 CALL CHG MOV DL,C2 MOV AH,2 INT 21H LEA SI,D2+3 CALL CHG MOV DL,C3 MOV A

14、H,2 INT 21H MOV AX,D1 MOV DX,D2 SUB AX,DX MOV R,AX MOV AX,D1+2 MOV DX,D2+2 SBB AX,DX MOV R+2,AX JC BO LEA SI,R+3 CALL CHG JMP EXITBO: MOV DL,C2 MOV AH,2 INT 21H MOV AX,R NEG AX MOV R,AX MOV AX,R+2 NEG AX MOV R+2,AX LEA SI,R+3 CALL CHG LEA DX,BORROW MOV AH,9 INT 21HEXIT:LEA DX,QUE1 MOV AH,9 INT 21H M

15、OV AH,1 INT 21H CMP AL,'Q' JZ A3 MOV DX,OFFSET C4 MOV AH,9 INT 21H JMP EXITA3: MOV AX,4C00H INT 21Hprint_1 proc ;dl中的09 a f输出为ascii cmp dl,9 jbe x1 ;0到9 add dl,57h ;为a到f jmp Y2x1: add dl,30hY2: mov ah,2 int 21h retprint_1 endp CHG PROC PUSHF MOV CX,4AA2:mov dl,byte ptrsi and dl,0f0h ;高4位 shr dl,1 shr dl,1 shr dl,1 shr dl,1 call print_1 mov dl,byte ptrsi and dl,0fh ;低4位 call print_1 dec si loop AA2 POPF ;挨个字符输出 RETCHG ENDP RAND PROC STI MOV AH,0 INT 1AH RETRAND ENDP CODE ENDS END START本科生课程设计成绩评定表姓 名庞

温馨提示

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

评论

0/150

提交评论