汇编语言进制转换程序课程设计报告(内有详细代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
院系:计算机
专业班级:计1002
学号: **********
学生姓名:***
指导教师:***
2010年 12月31日
安徽理工大学课程设计(论文)任务书
计算机科学与工程学院硬件教研室
安徽理工大学课程设计(论文)成绩评定表
摘要
代码转换程序主要是字母间的转换和数制之间的转换。字母转换主要是字母大小写转换,进制转换是二进制、十进制、十六进制之间的互换。程序首先给了一个选择需要进行的转换的菜单,用户根据界面信息选择功能。通过这种转换中数据的流向能够更好的理解计算机的一些基本原理,如计算机数据的存储形式和一些基本的DOS功能调用的基本方法与注意事项。
关键词:大小写字母,二进制,十进制,十六进制,数据
目录
1设计目的 (1)
2概要设计 (1)
2.1 系统总体分析 (1)
2.2 主模块框图及说明 (1)
3 详细设计 (3)
3.1 主模块及子模块说明 (3)
3.2 各模块详细设计 (3)
4.程序调试 (11)
4.1 运行界面分析 (11)
4.2 算法的分析 (11)
4.3 调试过程及分析 (14)
5心得体会 (15)
5.1 设计体会 (15)
5.2 系统改进 (15)
参考文献 (16)
1设计目的
1、实现大小写字母之间的转换:输入的字符串中,不是字母的字符不改变;大写字母改成小写字母时,若是大写字母则不改变;同样,小写字母改成大写字母时,若是小写字母则不改变
2、二进制和十六进制数之间的转换:输入一个二进制数(或十六进制数),用十六进制数(或二进制数)表示输出。最多能把十六位二进制数(或四位十六进制数)用四位十六进制数(或十六位二进制数)表示输出;小于十六位(或四位)时按回车结束并输出
3、十进制数和十六进制数之间的转换:输入一个十进制数(或十六进制数),用十六进制数(或十进制数)表示输出。最大能把十进制数65535(或十六进制数FFFF)转换成十六进制数FFFF(或十进制数65535)表示输出;小于65535(或FFFF)时按回车结束并输出
4.二进制数和十进制数之间的转换:输入一个十进制数(或二进制数),用二进制数(或十进制数表示输出)。最大能把十进制数65535(或十六位二进制数),用二进制数(或十进制输出)。当输入的数值小于65535(或16位二进制数时)按回车结束并输出。
2.1 系统总体分析
程序首先会显示主界面。然后根据用户的不同选择调用不同的模块,实现不同的功能。
1.大小写字母转换功能,是通过调用子函数input实现对字符串的输入,然后调用
宏gaixie来实现对大小写的转换,其中宏是通过参数的传递来确定是小写转
换成大写,还是大写转换成小写的。从而决定是对操作数进行加或减20H。
2.数制之间的转换主要指通过六大模块来完成的。其中有三个模块是分别是二进
制、十进制、十六进制的输入,并存储到BX中。类外三个模块分别是将BX
中的数转换成二进制、十进制、十六进制的输出。这样做的好处是可以只写
将程序尽可能的简化,将前三个模块与后三个模块进行组合就可以完成所需
要的进制转换。
2.2主模块框图及说明
程序首先显示主界面,然后用户输入1-9选择不同的功能,
则跳转到不同的模块,执行后在跳转到主模块,若是其他字符,则显示出错信息,并返回主模块。如图2-1为主模块的逻辑图
图2-1 主模块的逻辑图
3 详细设计
3.1 主模块及子模块说明
主模块:在屏幕上显示程序的主要功能并有用户选择,然后根据用户的选择调用相应的功能模块。
HEXIBIN:输入一个十六进制数(不超过4位),并存放在BX中
INBIN:输入二进制数(不超过16位),并存放在BX中
DECIBIN:输入一个十进制数(不超过65535),并存放在BX中
BINIHEX:把BX中的数转换成十六进制并输出
BINIDEC:用来把BX数转换到十进制并
PRINT:用来把BX中的数转换成二进制并输出
INPUT:字符串的输入,并存储
GAIXIE:把字符串转换成大写或小写,然后输出
CRLF:换行
3.2 各模块详细设计
3.2.1主模块
主模块是通过9号功能调用,显示主界面。然后用1号功能调用输入用户的选择。然后分别跳转到相应的功能。
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF ;输出选择主界面
MOV AH,9 ;调用9号中断功能
INT 21H
MOV AH,1 ;输入要选择的操作
INT 21H
CMP AL,'1' ;把AL中内容跟1比较
JZ BTOS ;相等则跳转到
CMP AL,'2'
JZ STOB1
CMP AL,'3'
JZ HTOB
CMP AL,'4'
JZ BTOH
CMP AL,'5'
JZ HTOD
CMP AL,'6'
JZ DTOH
CMP AL,'7'
JZ BTOD
CMP AL,'8'
JZ DTOB
CMP AL,'9'
JZ EXIT
LEA DX,BUF3 ;把BUF3的首地址给DX
MOV AH,9
INT 21H
CALL CRLF ;调用子程序CALL
JMP START ;返回,重新选择
EXIT:MOV AH,4CH ;退出
3.2.2 HEXIBIN
首先将BX清零作为输入数的存储,DX清零记为输入数的位数控制输入循环。通过对每一个输入输出判断其为小写字母或大写字母或数字,减去不同的数值,得到其代表的数值大小。然后将BX中的数值乘以16再与其相加存于BX中,同时DX加1,入DX不大于4,则进入下一轮跳转,否则就结束。
HEXIBIN PROC NEAR
MOV BX,0 ;把BX清零
MOV DX,0 ;作为输入四位的记数器
INHEX:CMP DX,4 ;把DX跟4比较
JNB HEXEND ;大于则跳转,子程序结束
MOV AH,1 ;输入数据
INT 21H