班级  软件工程16-1  学号  3162052051116  姓名  张识虔  同组实验者              

实验名称             数码转换程序实验                     日期 2018 11 14

一、实验目的:

掌握不同进制数及编码相互转换的程序设计方法

二、实验环境:

PC 微机一台、TD-PITD 实验系统一套。

三、实验内容:

计算机输入设备输入的信息一般是由 ASCII 码或 BCD 码表示的数据或字 符,CPU 一般均用二进制数进行计算或其他信息处理,处理结果的输出又必须 依照外设的要求变为 ASCII 码、BCD 码或七段显示码等。因此,在应用软件中, 各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码对应关系如 2-3-1 所示。数码转换关系如图 2-3-1 所示。

2-3-1  计算机与外设间的数码转换关系

2-3-1  数码转换对应关系

 

  1. ASCII 码表示的十进制数转换为二进制数

本实验要求将缓冲区中的一个五位十进制数 00012 ASCII 码转换成二进 制数,并将转换结果显示在屏幕上。转换过程的参考流程如图 2-3-2 所示,根据 流程图编写程序代码。

 

十进制数可以表示为:Dn×10n+Dn-1×10n-1++D0×100=Di×10i 其中 Di 表十进制数 12390

上式可以转换为:ΣDi×10i=(((Dn×10+Dn-1)×10)+Dn-2)×10++D1)× 10+D0

由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位 Dn 开始 作乘 10 加次位的操作,依次类推,则可求出二进制数结果。

2-3-2  十进制 ASCII 转换为二进制数参考流程

DATA SEGMENT ;定义源数据段MSR DB '00012'LEN EQU $-MSRDATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS,AXMOV SI, OFFSET MSRMOV CX,LEN-1MOV AL, DS:[SI] ;开始传输数据MOV AH,0SUB AX,30HNEXT1: MOV BX, 0AHMUL BX ; 将AX中的数乘以10,所得的结果高位保存到DX中,低位保存到AX中INC SIMOV DL,DS:[SI]MOV DH,0SUB DX,30H ;将数字对应的ASCII码转换成响应的二进制数ADD AX,DXDEC CXJNZ NEXT1MOV CL,16 ; CL用作循环NEXT2的计数器,因为5位十进制数转化成二进制只有十六位,所以循环次数为16次MOV BX,AXNEXT2: ROL BX,1MOV DL,BLAND DL,01HADD DL,30H ;把BX中的数以二进制形式输出MOV AH,2HINT 21HDEC CLJNZ NEXT2MOV AX,4C00HINT 21HCODE ENDSEND START

  1. 将十进制数的 ASCII 码转换为 BCD

本实验要求将键盘输入的一个五位十进制数 54321 ASCⅡ码存放在数据 区中,转换为 BCD 码后 ,并将转换结果显示于屏幕上 。若输入的不是十进制 数的 ASCⅡ码,则输出“FF”。提示:一字节 ASCⅡ码取其低四位即变为 BCD 码。转换部分的实验流程参见 2-3-3,根据流程图编写程序代码。

  1. 将十六进制数的 ASCII 码转换为十进制数

本实验要求将缓冲区中存放的 000CH ASCII 码转换成十进制数,并将转 换结果显示在屏幕上。转换部分的实验流程如图 2-3-4,根据流程图编写程序代 码。

十六位二进制数的值域为 0-65535,最大可转换为五位十进制数。五位十进 制数可表示为:ND=D4×104+D3×103+D2×102+D1×10+D0 因此,将十六位二进 制数转换为五位 ASCⅡ码表示的十进制数,就是求 D1-D4,并将它们转化为 ASC Ⅱ码。

2-3-3  十进制 ASCII 转换为 BCD 码数参考流程

DATA SEGMENT ;定义源数据段STRING DB 'Input:','$'MSR DB 6,?,6 DUP(?) ;数据段MSR用于接收从键盘输入的五位十进制数DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE, DS:DATASTART: MOV AX,DATAMOV DS,AX ; 装载数据段寄存器LEA DX, STRINGMOV AH, 09HINT 21HMOV DX, OFFSET MSRMOV AH,0AHINT 21HMOV CL,[MSR+1] ;CL中保存实际输入的数据的位数,用于控制循环执行的次数MOV SI,0002HMOV BX, OFFSET MSRNEXT1: MOV AL,[BX+SI] ;开始传输数据CMP AL,40HJNC LK1 ;大于等于40H则表明输入的不是数字符,跳到LK1输入FCLCCMP AL,30JC LK1 ;小于30H则表明输入的不是数字字符,到LK1输出字符FSUB AL,30HMOV CH,0PUSH CXMOV CL,4MOV DH,ALSHL DH,CLNEXT2: ROL DH,1MOV DL,DHAND DL,01HADD DL,30HMOV AH,02HINT 21HDEC CLJNZ NEXT2POP CXINC SIDEC CLJNZ NEXT1LK1: JZ LK2MOV DL,46H ;输出字符FMOV AH,02HINT 21HINC SIDEC CLJNZ NEXT1LK2: MOV AX,4C00HINT 21HCODE ENDSEND START

2-3-4  将十六进制数的 ASCII 码转换为十进制数参考流程

4BCD 码转换为二进制码 BCD

01H,07H,03H,04H,05H,01H,06H,08H,转换成二进制数码存入其后的内存单元中, 转换结束,送屏幕显示。转换部分的实验流程参见 2-3-5,根据流程图编写程序 代码。

2-3-5  BCD 码转换为二进制码

DATA SEGMENT ;定义源数据段STRING DB 'Input:','$'MSR DW 000CHMDR DB 5 DUP(?),'$'DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE, DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BX,OFFSET MDRMOV SI, 5MOV AX,[MSR] ;将数据000CH保存到AX当中NEXT1: DEC SIMOV DX,0MOV CX,0AHDIV CXADD DL,30HMOV [BX+SI],DLCMP AX,0JNE NEXT1CMP SI,0 ;判断SI是否为零,为零则表明五位十进制数的每一位都不为零,否则应给前面为零的位上补上零JE NEXT3NEXT2: DEC SIMOV AL,30HMOV [BX+SI],ALCMP SI,0JNE NEXT2NEXT3: MOV DX,OFFSET MDRMOV AH,09HINT 21HMOV AX,4C00HINT 21HCODE ENDSEND START

2.3.4 实验步骤 (1) 按照各实验要求分别编写实验程序。

 (2) 对实验程序进行编译、链接。

(3) 使用调试功能调试程序,观察在调试过程中,程序指令执行之后各寄存 器及数据区的内容。

 (4) 更改数据区中的数据,反复测试,验证程序功能。

四、心得体会:

这个是第一次自己手打的实验 的确很难  对汇编语言还不是很熟悉   有时候答案出来了 还不是很理解是怎么转换的  很纠结  

微机实验报告4 数码转换程序实验相关推荐

  1. 计算机图形人机交互实验报告,用户界面设计人机交互实验报告.doc

    用户界面设计人机交互实验报告 <人机交互>实验报告 题目 实验一 图形用户界面的设计 专业 软件工程 班级 2011 学号 2011221104220026 姓名 孙元喜 导教师 关玉欣 ...

  2. 计算机实训机器人实验原理是什么,实验报告机器人控制技术基础实验报告.doc...

    实验报告机器人控制技术基础实验报告 华北电力大学 实 验 报 告 | | 实验名称: 机器人控制技术基础 课程名称: 机器人控制技术基础 | | 实 验 人: 成 绩: 18.00秒 指导教师: 实验 ...

  3. 单片微型计算机原理及应用实验报告,小学期单片机实验报告_相关文章专题_写写帮文库...

    时间:2019-05-13 01:16:21 作者:admin 北京邮电大学信息与通信工程学院 小学期AVR单片机实验报告 实验题目: 基于ATmega16L单片机的电子琴设计 学生姓名:学渣 班 级 ...

  4. 计算机硬件技术基础实验教程实验报告,计算机硬件技术基础实验报告.doc

    计算机硬件技术基础实验报告 计算机硬件技术基础实验日志认识集成操作软件DDATA SEGMENT MSRDB "HELLO,WORLD!$" LENEQU $- MSR DDATA ...

  5. 计算机实验报告要求,计算机上机实验内容及实验报告要求

    一.<软件技术基础>上机实验内容 1.顺序表的建立.插入.删除. 2.带头结点的单链表的建立(用尾插法).插入.删除. 二.提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹 ...

  6. 射极跟随器实验报告数据处理_射极跟随器实验报告模式

    射极跟随器实验报告模式 射极跟随器实验报告模式 一.实验目的 1.熟悉Multisim9软件的使用方法. 2.掌握放大器静态工作点的仿真方法及其对放大器性能的影响. 3.学习放大器静态工作点.电压放大 ...

  7. 计算机应用基础实验报告册,计算机应用基础实验报告(flash)

    实 验 报 告 计算机应用基础实验报告 姓名 班级 学号 实验日期 课程名称 计算机应用基础 指导教师 成绩 实验名称:简单动画制作 实验目的: 掌握逐帧动画.形状渐变动画.运动渐变动画的制作方法 实 ...

  8. 淮海工学院linux实验报告三,作业三 实验报告

    作业三 实验报告 网络通信 文件传输 实验一 1-1 实验题目 服务器端和客户端各传递1次字符串.考虑到使用TCP协议,所以传递字符串前先以4字节整数型方式传递字符串长度.连接时服务器端和客户端数据传 ...

  9. 安徽工程大学C语言程序设计实验报告,安徽工业大学嵌入式实验报告.docx

    安徽工业大学嵌入式实验报告 <嵌入式系统实验报告>指导教师:陆勤姓名:程少锋学号:139074366班级:物联网131班实验一B 熟悉实验开发环境一.实验目的熟悉ADS1.2 开发环境,学 ...

  10. 计算机组成原理实验报告西华大学,计算机组成原理实验报告算术逻辑运算单元实验...

    <计算机组成原理实验报告算术逻辑运算单元实验>由会员分享,可在线阅读,更多相关<计算机组成原理实验报告算术逻辑运算单元实验(6页珍藏版)>请在人人文库网上搜索. 1.西华大学数 ...

最新文章

  1. 微信小程序var,let,const的区别
  2. 大数据Scala编程.问题集(02)
  3. 揭秘PPT设计中的逻辑真相
  4. 【图文讲解】eclipse中配置maven环境+导入maven项目
  5. 如果我要....(生活版)
  6. Mysql编码教程_mysql编码设置教程 mysql编码要怎么设置呢
  7. php: +1天, +3个月, strtotime(): +1 day, +3 month
  8. 如何用c语言程序写一段英文字母,菜鸟求助,写一个随机输出26个英文字母的程序...
  9. Github | 如何用Python测试GPU与CPU计算性能
  10. mac下ssh免密登陆远程服务器(linux)
  11. 车借给朋友好几次,满油的车每次还回来都是没油了,我觉得心里有些不舒服是我太计较吗?
  12. msiafterburner并行配置不正确_dubbo常用配置及使用场景
  13. Wireless Network(并查集)
  14. 高德地图 web API 多点路线绘制
  15. 访问无偏移的谷歌地图——工具篇
  16. VC2008中影响exe大小和速度的全部编译选项
  17. 凝胶渗透色谱的基本概念(一)
  18. 国内数据资源共享平台介绍
  19. 《如何阅读一本书》完整版读书笔记
  20. 【公开课】国内外公开课网址

热门文章

  1. 后台审批功能 销售发货单 生成 销售出库单 java NC633 接口开发
  2. DXperience Winforms12.2版的中文使用手册
  3. [NLP论文阅读]A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS
  4. [NOIP2013]记数问题
  5. 网上阅卷系统服务器,网上阅卷系统是什么?
  6. 三星 android截屏快捷键是什么手机,三星手机如何快速截屏?两种快速截图方法教给你!...
  7. 金蝶记账王和易记账哪个好_金蝶易记账和记账王的区别是什么?金蝶易记账的具体操作如下...
  8. 说说浏览器缓存里的websql与 indexeddb
  9. python加载dll后如何查看函数_Python调用DLL带指针函数读写IC卡
  10. opencv2,3 ,4几个版本的区别及冲突性,使用的时候用头文件注意