《微机原理与接**术》
课程设计报告。
题目: **转换程序。
班级: 2010级计算机应用班
学号: 102113010038
姓名: 邓招龙
指导教师: 马慧胡波
实训时间: 2012.1.2——2012.1.13
目录。一课程设计的目的 3
二课程设计所要达到的要求 4
三思路及方案 4
四课程设计内容 5
1 设计题目——**转换程序 5
2 流程图 6
3 调试运行结果 7
运行 7 字母转换 9
二进制转换为十六进制 9
退出 10
五总结 11
六附录 12
附录一 12
附录二 18
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
本次课程设计的题目是**转换,这是一个基于计算机和汇编环境的程序,主要就是通过完成这次设计,实现二进制,十六进制**的转换,以及大小写字母之间的转换。从而掌握不同进制数及编码相互转换的程序设计方法,知道将存储在内存单元中的数据以十六进制数和二进制数形式显示在屏幕上的方法,加深对数码转换的理解。
字母或数制之间的转化程序,按s后,键盘输入小写字母,显示对应的大写字母,按b后,键盘输入二进制数,显示对应的十六进制数。结果显示在屏幕上。按q退出程序。
确定程序功能和功能结构,数据结构,以及用户界面;对各功能模块进行准确的定义,对全局数据变量进行说明和定义;确定各功能模块的原理及算法并画出相应的数据和程序流图。用int21中的09h号功能和0ah功能实现输入输出对话。
首先输出一个选择窗口,有两种选择。按照自己的要求选择,选择之后,就会调用相应的输入函数,必须输入相应进制的数进行处理,输入之后,程序就会处理输入数据,然后调用相应的输出函数,就会输出相应的数据。输入函数,输出函数都是子函数。
他们都有自己的功能,不管有多少进制,处理的过程都是一样的,这种方法能够重复使用相同功能的函数,不会出现**的重复定义和使用。输入小写字母后用int21的0ah号功能读入数据缓冲区中,其中数据缓冲区的第一个字节指出缓冲区能容纳的字符数,不能为0。第二个字节保留以用作输入的字符个数。
从第三个字节才存放从键盘上接受的字符。所以转换时要从数据缓冲区的第三个字节即开始。数据缓冲区中存放的是小写字母的ascii码。
转换为大写字母只需减去20h,然后用int21中的09h号功能输出。
、任务要求。
字母或数制之间的转化程序,按s后,键盘输入小写字母,显示对应的大写字母,按b后,键盘输入二进制数,显示对应的十六进制数。结果显示在屏幕上。按q退出程序。
、实验设备。
微型计算机。
流程图说明。
初始化生成可执行文件,从而进入选择类型选择要进行的操作。建入大写字母“s”实现小写字母转大写。键入大写字母“b”实现进制的转换。
键入s初始化,然后键入小写字母进行转化,如果键入的不是小写字母则不显示,直到键入的为小写字母就转化为大写且显示在屏幕上。按任意键返回选择。
键入b初始化,然后键入二进制进行转化,如果键入的不是二进制则不显示,直到键入的为二进制就转化为十六进制且显示在屏幕上显示。按任意键返回选择。
若不需要在转换,键入大写字母“q”退出程序。
3 调试运行结果。
运行。在“运行”里输入cmd弹出指令窗口——输入e:——cd masm——
如图:masm‘文件名’——回车继续编译。
无错误,输入link”文件名”——回车。
生成可执行文件exe
字母转换。
输入小写字母“z”转化为了大写字母“z”
再输入一次调试无误:如下图:
二进制转换为十六进制。
输入二进制“1010101010111111” 转化为了十六进制“aabfh,如图:
再如:输入1010101101101010 得到:ab6ah
如图: 退出。
输入q就退出。
通过一年的学习,我门认识并了解了微机原理与接**术这门课程的相关知识,而这次的课程设计更家深刻地认识并掌握了更多的知识。
在设计中,我也更加明白了只有顺利地分析流程,画出流程图,设计的程序才才能顺利,并一步一步地实现,除此之外,我门还必须了解微机原理中的计算机语言、命令,如(data,ends
code segment
assume ds:data,cs:code
start: mov ax,data , mov ds,ax
select: mov int 21h
等等)只有这样,才能实现程序原**的编写,所以这方面的知识要弄明白。
程序的调试,也是一个很重要的环节,我们也必须了解计算机里面的命令提示符,如:cmd弹出指令窗口——输入e:——cd masm——masm‘文件名’——回车继续编译,还有link等等的这些命令。
只有掌握这些,才能在计算机里面调试所写的程序。
虽然在设计过程中遇到了不少困难,但是在我们组长和组员的帮助下,很容易地解决了问题,并且在此过程中,我们也弄明白了需多以前没有弄明白的知识,并且将它运用在本次的程序设计当中。
程序**及注释。
data segment
buf1 db 'choose function:',0dh,0ah
buf2 db 's:a-->a,b:0101b-->5f',0dh,0ah,'$
buf3 db 0dh,0ah,'input the lowercase:',0dh,0ah,'$
buf4 db 0dh,0ah,'input the binary:',0dh,0ah,'$
buf5 db 'press q or q to quit,press other key to continue!',0dh,0ah,'$
buf6 db 'the result is:',0dh,0ah,'$
buf7 db 0dh,0ah,'$
buf8 db 4 dup (?h',0dh,0ah,'$
bina dw ?
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
select:
;多字符显示,显示功能选择
mov dx,offset buf1
mov ah,9
int 21h
;输入功能选择键,b或s
mov ah,1 ;输入单字符
int 21h
;查看输入字符,确定选择功能
cmp al,'s'
jz lowercase
cmp al,'b'
jz binary
jmp select
小写字母转换为大写字母
lowercase:
mov dx,offset buf3
mov ah,9
int 21h
;输入小写字母,并显示
mov ah,1
int 21h
mov bl,al
mov dx,offset buf7
mov ah,9
int 21h
cmp bl,'a'
jb lowercase
cmp bl,'z'
ja lowercase
transform
sub bl,20h
;display result
mov dx,offset buf6 ;the result is:
mov ah,9
int 21h
mov dl,bl
mov ah,2
int 21h
;**换行***
mov dx,offset buf7
mov ah,9
int 21h
jmp exit
;二进制转换为十六进制。
binary:
mov dx,offset buf4
mov ah,9
int 21h
;**二进制的输入过程***
;**初始化***
xor bx,bx
xor cx,cx
mov cx,8000h
again:
;**input a bit***
mov ah,8
int 21h
mov bl,al
cmp bl,31h
jz setbit
cmp bl,30h
jz rstbit
jmp again
setbit:
or bina,cx
jmp show
rstbit:
mov bx,cx
xor bx,0ffffh
and bina,bx
show:
mov dl,al
mov ah,2
int 21h
shr cx,1
cmp cx,0
jnz again
;**换行***
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....