




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计报告课程名称:计算机组成原理与汇编语言报告题目:字母与进制转换系统学生姓名: 所在学院:信息科学与工程学院专业班级:指导教师: 2013 年 6月 26 日摘要汇编语言是计算机能够提供给用户使用的最快且最有效的语言,也是能够充分利用计算机所有硬件资源并能直接控制硬件的唯一语言。用汇编语言编制的程序同机器语言程序一一对应,它的目标代码短,运行速度快,在对程序的时间和空间要求很高的场合,往往需要采用汇编语言。本程序是用汇编语言编写的字母与进制转换系统,拥有三个子功能。分别为将大写字母转换为小写字母,将十进制数转换为十六进制数和将十六进制数转换为十进制数。通过此次课程设计,我们对汇编语言的
2、大部分基本指令非常熟悉。分析问题,解决问题的能力将得到极大的提高。关键词:汇编;语言;进制;转换目录一、课题分析1二、需求分析21功能描述22. 功能模块分析 2 三、设计方案31系统流程图32子程序模块设计4 3. 详细设计44程序调试结果及分析11四、结论与心得12五、参考文献13一、课题分析根据要求我们做的是完成一个字母或数制之间的转化程序,主程序分别具有3种可选择的子功能,按相应的字母(X=>功能1; Y=>功能2; Z=>功能3;)可分别进入相应的子功能并在屏幕上显示结果。3种可选择的子功能分别为:1)实现大写字母向小写字母的转换2)实现十进制数向十六进制数的转换3
3、)实现十六进制数向十进制数的转换。当运行程序后,应该要出现一个主菜单界面,主界面应该要能进入三个子功能界面,即输入X,进入实现大写字母向小写字母的转换的子功能界面;输入Y,进入十进制数向十六进制数转换的子功能界面;输入Z,进入十六进制数向十进制数的转换。如:当选中了大写字母向小写字母转换的功能后,如果输入的不是大写字母,应要提示输入错误,请重新输入,直到输入正确为止。通过改变ASSIC码值,实现大写字母向小写字母的转换。显示转换后的字母后,跳转到主菜单,重新选择子功能。二、需求分析 1.功能描述 本程序共有三个功能,3种可选择的子功能分别为:1)实现大写字母向小写字母的转换2)实现十进制数向十
4、六进制数的转换3)实现十六进制数向十进制数的转换。输入相应的字符即可分别进入相应的子功能并在屏幕上显示结果。 输入X:进入实现大写字母向小写字母的转换子功能模块。输入Y: 进入实现十进制数向十六进制数转换的子功能模块。输入Z:进入实现十六进制数向十进制数转换的子功能模块。如果用户输入X,即进入实现大写字母向小写字母转换的子功能模块,如果输入的不是大写字母,应要提示输入错误,请重新输入,直到输入正确为止。通过改变ASSIC码值,实现大写字母向小写字母的转换。显示转换后的字母后,跳转到主菜单,重新选择子功能。如果用户输入Y,即进入实现十进制向十六进制转换的子功能模块,十进制转十六进制数以二进制为中
5、介,先将输入视为十进制,转换为二进制数保存在BX中。然后再将这个二进制数转换为十六进制数保存在之前设定的单元中并输出,然后跳转到主菜单。如果用户输入Z,即进入实现十六进制向十进制转换的子功能模块,十六进制转换为十进制数的主要思想是按权值展开再相加,转换输出后,跳转到主菜单。2.功能模块分析 本程序主要由四个模块构成。首先是主界面,将显示本程序拥有的所有的子功能。然后是三个子功能。分别拥有将大写字母转换成小写字母,将十进制数转换成十六进制数,将十六进制数转换成十进制数的功能。 主菜单:显示系统名称,显示各字母编号所对应的子功能。 大写字母转换成小写字母:当用户输入X编号时,便进入此子功能。提示输
6、入一个大写字母,如果输入的不是大写字母则提示输入错误,请重新输入。通过改变ASSIC码值,实现大写字母向小写字母的转换。显示转换后的字母,然后跳转到主菜单。十进制数转换成十六进制数:当用户输入Y编号时,便进入此子功能。提示输入一个十进制数,十进制转十六进制数以二进制为中介,先将输入视为十进制,转换为二进制数保存在BX中。然后再将这个二进制数转换为十六进制数保存在预先准备的单元中,输出之后跳转到主菜单。 十六进制数转换成十进制数:当用户输入Z编号时,便进入此子功能。提示输入一个十六进制数,十六进制数转换成十进制的主要思想是,按权值展开再相加。首先是将输入的字符转换成相应的数字,通过设置相应的变量
7、,依次进行累乘,直到十六进制数位数全部循环完毕,将每一位所得的数保存在寄存器中,每进行一次就实现一次求和运算。最后将转换成的十进制数输出,跳转到主菜单。三、设计方案1.系统流程图主菜单 开 始输入有误,重新输入其他退出XYZQ输入十六进制数输入十进制数输入大写字母输入错误输入错误输入错误判断输入是否合法判断输入是否合法N判断输入是否合法N转换小写字母转换十六进制NY转换十进制YY结 束输出输出输出2.子程序模块设计(1)大写字母转换成小写字母子程序当用户选择编号X,便选中了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示输入一个大写字母,会有一个判断输入是否合法的过程,若输入
8、的是非大写字母,则会提示输入错误,请重新输入,直到输入正确为止。通过改变ASSIC码值,实现大写字母向小写字母的转换。显示转换后的字母,然后跳转到主菜单。(2)十进制数转换成十六进制数子程序 当用户选择编号Y,便选中了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示输入一个十进制数。总体来说是以二进制为中介,先将输入视为十进制,转换为二进制数保存在BX中,然后再将这个二进制数转换为十六进制数保存在之前定义好的的单元中并输出,然后跳转到主菜单。(3)十六进制数转换成十进制数子程序 当用户选择编号Z,便选择了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示输入一
9、个十六进制数,此时会进行判断,若是输入字符串不符合十六进制数的要求,则提示输入错误,重新输入,直到输入正确为止。十六进制数转换成十进制的主要思想是,按权值展开再相加。首先是将输入的字符转换成相应的数字,通过设置相应的变量,在最低位上的权值是1,然后依次是16,256依次进行累乘,直到十六进制数位数全部循环完毕,将每一位所得的数保存在寄存器中,每进行一次就实现一次求和运算。最后将转换成的十进制数输出,跳转到主菜单。3.详细设计(1)主菜单设计include io32.inc .data m1 byte ' 字母与进制转换系统 ',13,10,0 ;菜单 m2 byte '
10、-',13,10,0 ;分割线 m3 byte ' 编号 操作 ',13,10,0 ma byte ' X 实现大写字母向小写字母的转换',13,10,0 mc byte ' Y 实现十进制向十六进制数的转换',13,10,0 me byte ' Z 实现十六进制向十进制数的转换',13,10,0 mq byte ' Q 退出',13,10,0 m_err byte ' 输入错误,请重新输入',13,10,0 m_meau byte '请输入菜单中的编号: ',0 m_inp
11、utl byte '请输入一个大写字母: ',0 m_outputl byte '对应的小写字母: ',0m_meau byte '请输入菜单中的编号: ',0 m_input1 byte '请输入一个十进制数: ',0 m_output1 byte '转换后的十六进制的数: ',0m_meau byte '请输入菜单中的编号: ',0 m_input3 byte '请输入一个十六进制的数: ',0 m_output3 byte '转换后的十进制数: ',0 arra
12、y byte 8 dup (0) ;用字符串数组保存十六进制数 sum dword ? ;十进制数变量 len byte ? ;字符串数组的长度 m byte ? array2 byte 100 dup (0) ;用来保存转换后的十六进制数 n dword ? k dword ? j dword ? .codestart: mov eax,offset m1 ;显示菜单中的内容 call dispmsg mov eax,offset m2 call dispmsg mov eax,offset m3 call dispmsg mov eax,offset mx call dispmsg mov
13、 eax,offset my call dispmsg mov eax,offset mz call dispmsg mov eax,offset mq call dispmsgmeau: mov eax,offset m_meau call dispmsg ;提示输入相应的菜单编号 call readc ;输入对应的编号 call dispcrlf ;换行 cmp al,'x' ;判断输入 jz a ;若输入x,则跳转到标识符a cmp al,'y' jz b ;若输入y,则跳转到标识符b cmp al,'z' jz c ;若输入z,则跳转到标
14、识符c cmp al,'q' jz q ;若输入q,则跳转到标识符q mov eax,offset m_err call dispmsg ;输入错误,提示错误的信息 jmp meau(2)大写字母转换为小写字母子程序设计 returna: mov eax,offset m_err call dispmsga: mov eax,offset m_inputl call dispmsg ;提示输入一个大写的字母 call readc ;获得字母 mov bl,al ;将输入的内容存储到bl中 call dispcrlf ;换行 cmp al,'A' ;判断输入的字母
15、是否合法 jb returna ;如果比'A'小,则跳转到returna标识符 cmp al,'Z' ja returna ;如果比'Z'大,则跳转到returna标识符 call dispc ;显示字母 mov eax,offset m_outputl call dispmsg ;输入正确,则提示输出相应的小写字母 add bl,20h ;实现大写向小写的转换 mov al,bl call dispc ;显示转换后的字母 call dispcrlf ;换行 jmp meau (3)十进制数转换为十六进制数子程序设计 data segmentst
16、r db 0ah,0dhnum db 4 dup(?),'H$'tab db '0123456789ABCDEF'data endscode segment assume cs:code,ds:databegin: mov ax,data mov ds,ax ;初始化代码段 xor bx,bx mov cx,10 ;进制next: mov ah,1 int 21h cmp al,0dh jz conv ;如果是回车,表示输入结束,转换开始 push ax ;保存输入值,和AH mov ax,bx mul cx mov bx,ax ;将先前的结果向上推一位 pop
17、 ax ;取回本次输入 and al,0fh ;屏蔽掉无用位,类SUB AL,30H xor ah,ah ;高位归零 add bx,ax ; 合并本次输入 jmp nextconv: mov ax,bx ; 开始转换 mov ch,4 lea bx,tab mov cl,4 lea si,numlopa: rol ax,cl ; 把高4位移到低4位 push ax and ax,000fh ; 取出低4位 mov si,al ;按地址由低到高的顺序将结果由高到底存放 inc si pop ax dec ch jnz lopa lea dx,str mov ah,9 int 21h ;回车换行
18、mov ah,4ch int 21h call dispcrlf jmp meau ;返回主菜单(4)十六进制数转换为十进制数子程序设计 mov m,al mov eax,offset m_input3 call dispmsg mov eax,offset array call readmsg mov len,al ;获得字符串长度 xor ecx,ecx ;异或清零 mov cl,len ;计数 dec cl ;自减1 xor eax,eax mov edx,1 ;初始权值again: cmp arrayecx,'A' jl shiliu_shi1 ;小于A,转向shili
19、u_shi1 cmp arrayecx,'F' jg shiliu_shi1 ;大于Z,转向shiliu_shi1 xor ebx,ebx mov bl,arrayecx ;相对寻址 sub bl,55 ;转换成相应的数字 imul ebx,edx add eax,ebx imul edx,16 ;改变权值 jmp shiliu_shi3shiliu_shi1: cmp arrayecx,'0' jl shiliu_shi2 ;小于0,转向shiliu_shi2 cmp arrayecx,'9' jg shiliu_shi2 ;大于9,转向shi
20、liu_shi2 xor ebx,ebx ;临时寄存 mov bl,arrayecx sub bl,'0' ;转换成相应的数字 imul ebx,edx add eax,ebx imul edx,16 ;改变权值 jmp shiliu_shi3 shiliu_shi2: mov eax,offset m_err call dispmsg ;提示输入错误 jmp zshiliu_shi3: dec ecx ;自减 cmp ecx,0 jnl again ;不小于0,转向again mov sum,eax cmp m,'e' jz ee ;直接输出ee: mov eax,offset m_output3 call dispmsg mov eax,sum ;数据输出 call dispuid call dispcrlf jmp me
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019-2025年军队文职人员招聘之军队文职教育学题库与答案
- 2025年军队文职人员招聘之军队文职管理学与服务考试题库
- 2021-2022学年广东省广州市白云区六校七年级(下)期中数学试卷(含答案)
- 企业级数据安全合规策略制定服务协议
- 网络直播平台合作项目表
- 四川省成都市武侯区2024-2025学年七年级上学期期末生物学试题(含答案)
- 湖南省岳阳市岳阳县2024-2025学年七年级上学期期末生物学试题(含答案)
- 语言学英语翻译技能测试卷
- 湿地松采脂承包合同
- 团队目标与绩效考核表
- 江苏省宿迁市2024年中考数学试卷含答案
- 河道综合治理工程施工组织设计(投标)
- 处方书写规范考核试题及答案
- 餐饮配方传授合同范本
- 22G101三维彩色立体图集
- 福建省教师公开招聘考试(小学数学)模拟试卷1(共236题)
- 顺丰快递员工入职合同范本
- 《智慧农业》教学课件
- 人教版小学英语单词表(完整版)
- 尾矿库“一库一策”安全风险管控方案(编制范本)
- NY 1420-2007 温室工程质量验收通则
评论
0/150
提交评论