




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理课程设计报告班级: 姓名: 学号:一、目的结合微机原理课程的学习,进一步巩固所学只是,掌握汇编语言的编程要领,熟悉汇编程序上机过程以及进行程序调试。二、设计任务,程序清单,流程图任务1(具体题目要求):字符串匹配设计 为掌握提示信息的设置方法及读取键入信息的方法。编写程序实现两个字符串比较。如相同,则显示:“MATCH”,否则,则显示“NO MATCH” 程序清单:DATA SEGMENT INPUT1 DB INPUT STRING1!,0DH,0AH,$ INPUT2 DB INPUT STRING2!,0DH,0AH,$ MAT DB 0DH,0AH,MATCH!$ MISMAT DB 0DH,0AH,NO MATCH!$ LEN1 DB 20 STRING1 DB 20 DUP(?) LEN2 DB 20 STRING2 DB 20 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,09H MOV DX,OFFSET INPUT1 INT 21H MOV AL,LEN1 MOV BX,OFFSET STRING1 MOV BX,AL MOV AH,0AH MOV DX,OFFSET STRING1 INT 21H CALL CRLF MOV AH,09H MOV DX,OFFSET INPUT2 INT 21H MOV AL,LEN2 MOV BX,OFFSET STRING2 MOV BX,AL MOV AH,0AH MOV DX,OFFSET STRING2 INT 21H CALL CRLF CLD LEA SI,STRING1 LEA DI,STRING2 MOV CX,5 REPE CMPSB JNE NOMAT MOV AH,9 MOV DX,OFFSET MAT INT 21H JMP EXITNOMAT:MOV AH,9 LEA DX,MISMAT INT 21HEXIT: MOV AH,4CH INT 21HCRLF PROC NEAR MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21HRETCRLFENDPMAIN ENDPCODE ENDSEND MAIN流程图:使用INT21H的0A号子功能,接收键入字符串1返回DOS显示“MATCH”显示“NOMATCH”所有字符相等吗?字符串1和串2中所有字符作比较开始段寄存器初始化显示“请输入字符串1”使用INT21H的0A号子功能,接收键入字符串1显示“请输入字符串2” .任务2(具体题目要求)将键盘输入的小写字母转换为大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。编写程序,接收键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。程序清单:CRLF MACRO MOV DL,0DH MOV AH,02H INT 21H MOV AH,02H MOV DL,0AH INT 21HENDMDATA SEGMENTINPUT1 DB 100 DB 0 DB 100 DUP($)MES1 DB Please Input a String:,0DH,0AH,$MES2 DB The Output Is:,0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXTISHI: MOV AH,09H MOV DX,OFFSET MES1 INT 21H INPUT: MOV DX,OFFSET INPUT1 MOV AH,0AH INT 21H CRLF MOV CX,00H MOV CL,INPUT1+1 LEA SI,INPUT1+2 NEXT: CMP BYTE PTR SI,a JB CONT CMP BYTE PTR SI,z JA CONT SUB BYTE PTR SI,20HCONT: INC SI LOOP NEXTTISHI1:MOV AH,09H MOV DX,OFFSET MES2 INT 21H OUTPUT:LEA DX,INPUT1+2 MOV AH,09H INT 21HEXIT: MOV AH,4CH INT 21HCODE ENDS END START流程图:返回DOS将小写转换为大写输入是大于z吗?输入是小于a吗?使用INT21H的09号子功能,输出大写字符串CL为0吗?CL自减一SI自加一指向下一字符开始段寄存器初始化显示“请输入一字符串”使用INT21H的0A号子功能,接收键入字符串输入字符串字符个数给CL指针SI指向输入字符串首地址任务3(具体题目要求)键盘输入数据并显示的设计为掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。编写程序,将键盘接收到的四位十六进制数据转换为等值的二进制数,再显示在终端上。程序清单: CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21HENDMDATA SEGMENT MES1 DB Please Input The number:$ MES2 DB The Result Are:$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC FARSTART:MOV AX,DATA MOV DS,AXTISHI: MOV DX, OFFSET MES1 MOV AH,09H INT 21H CRLF MOV BX,0 MOV CX,4INPUT: mov Ah,07H INT 21H CMP AL,48 JB INPUT CMP AL,57 JNA TRANS CMP AL,97 JB INPUT CMP AL,102 jA INPUT JMP ENGTRANS : MOV DL,AL MOV AH,02H INT 21H SUB AL,30H JMP FBIENG: MOV DL,AL MOV AH,02H INT 21H SUB AL,57H FBI: CBW XCHG AX,BX MOV DX,16 MUL DX XCHG AX,BX ADD BX,AX LOOP INPUT CRLFDISP: LEA DX,MES2 MOV AH,09H INT 21H CRLF MOV CX,16BINARY :TEST BX,8000H JNZ XONE MOV DL,0 MOV AH,02H INT 21H JMP NEXTXONE: MOV DL,l MOV AH,02H INT 21HNEXT: SHL BX,1 LOOP BINARY CRLFEXIT: MOV AH,4CH INT 21H MAIN ENDPCODE ENDS END START流程图:开始段寄存器初始化AL减57H,将ASCII码转为十进制返回DOS使用INT21H的07号子功能,接收一个字符给AL使用INT21H的02号子功能,显示输入字符AL小于0吗?AL大于9吗?AL小于A吗?AL大于Z吗?显示输出提示将BX左移16次分别与8000H运算输出16位二进制数AL减30H,将ASCII码转为十进制显示输入字符将输入4位ASCII码转换为一个四位十六进制数,放入BX任务4(具体题目要求)为掌握字符和数据的显示方法。编写程序,先显示信息:INPUT STRING,THE END FLAG IS $,再接收字符。如为0-9,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数。程序清单:CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21HENDMDATA SEGMENT MES DB INPUT STRING,THE END FLAG IS$! MES1 DB The Data Nunmber Count Is:$ NUM DB 0 DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXTISHI: LEA DX,MES MOV AH,09H INT 21H CRLFINPUT: MOV Ah,01H INT 21H CMP AL,$ JZ DISP CMP AL,48 JB NEXT CMP AL,57 JA NEXT INC NUMNEXT: JMP INPUTDISP: CRLFTISHI1: LEA DX,MES1 MOV AH,09H INT 21H CRLF MOV AL,NUM MOV BL,AL MOV CL,4 ROL AL,CL AND AL,0FH ADD AL,30H CMP AL,39H JBE K1 ADD AL,7K1: MOV DL,AL MOV AH,02H INT 21H AND BL,0FH ADD BL,30H CMP BL,39H JBE K2 ADD BL,7K2: MOV DL,BL MOV AH,02H INT 21H MOV DL,H MOV AH,02H INT 21H CRLFEXIT: MOV AH,4CH INT 21HCODE ENDS END START流程图: 是$字符?显示十六进制表示的个数开始显示提示信息使用INT21H的01号子功能,接收键入字符显示提示信息1统计字符个数按十六进制显示小于0吗?大于9吗?返回DOS计数NUM加一任务5(具体题目要求)为掌握字符和数据的显示方法。编写程序,先显示信息:INPUT STRING,THE END FLAG IS$,再接收字符。如为0-9,则计数器加一,并显示数据;如为非数字,则直接显示,但不计数。程序清单:CRLF MACRO MOV DL,0DH MOV AH,02H INT 21H MOV AH,02H MOV DL,0AH INT 21HENDMDATA SEGMENT MES DB Please Input A Number,Press C To Exit:,$ MES1 DB The Input Is Not A Number,Please Input Again:,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX, OFFSET MES MOV AH,09H INT 21H CRLFL3: MOV AH,01H INT 21H CMP AL,C JE EXIT CMP AL,30H JB L2 CMP AL,39H JA L2 AND AL,0FH CMP AL,0 JE EXIT MOV BL,ALL1: MOV DL,07H MOV AH,02H INT 21H CALL DELAY DEC BL JNZ L1 JMP L3 CRLFEXIT: MOV AH,4CH INT 21HL2: C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2025年中国浮动装置行业竞争格局分析及投资规划研究报告
- 2025年中国内蒙古园林绿化行业发展监测及投资战略研究报告
- 华洪新材2025年财务分析详细报告
- 2025年中国儿童饼干行业发展前景预测及投资方向研究报告
- 中国小程序市场竞争策略及行业投资潜力预测报告
- 2025年 物业管理师三级考试练习试题附答案
- 中国双机容错软件行业竞争格局及市场发展潜力预测报告
- 2025年 陇南徽县消防救援大队招聘政府专职消防员考试试题附答案
- 济南低压配电柜项目可行性研究报告范文参考
- 粘着剂行业深度研究分析报告(2024-2030版)
- 开标一览表(格式)
- 初一数学(下)难题百道及答案
- 七年级下实数及实数的计算
- 中国古典文献学(全套)
- 一起学习《数字中国建设整体布局规划》
- 两用物项-最终用户用途证明
- 全国2022年4月自学考试00882学前教育心理学试题及答案
- 以案释纪心得体会
- GB/T 620-2011化学试剂氢氟酸
- GB/T 28728-2012溶液聚合苯乙烯-丁二烯橡胶(SSBR)微观结构的测定
- GB/T 15474-2010核电厂安全重要仪表和控制功能分类
评论
0/150
提交评论