欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    王金龙——第二次微机实验、.doc

    • 资源ID:29888475       资源大小:36KB        全文页数:11页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    王金龙——第二次微机实验、.doc

    精品文档,仅供学习与交流,如有侵权请联系网站删除 微机原理与接口技术实验 实验名称:数码转码编程及程序调试学 院 电子与信息学院 专业班级 电子类联合班 学生姓名 王金龙 学生学号 201430260419 实验日期 2016年4月20日 一实验目的1掌握不同进程数及编码相互转换的程序设计方法,加深对数码转换的理解;2进一步熟悉键盘使用方法;3. 进一步熟悉调试程序的方法。二. 实验设备装有汇编软件的IBMPC 机一台 三 实验内容及步骤 计算机输入设备输入的信息一般ASCII码或BCD码表示的数据或字符,CPU处理信息一般均用二进制数进行计算或其它处理,处理结果输出的外设有必须一外设的要求变为ASCII码,BCD码或七段显示码等。因此,在应用软件中各累数制的转换和代码的转换是必不可少的。计算机于外设间的数码转换关系如图21所示,数码对应关系如表21所示。1 将ASCII码表示的十进制数转换为二进制数 十进制数可表示为: 代表十进制1,2,3,···9,0;由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn开始作乘10加次位的操作,将结果再乘10再加下一个次位,如此重复,则可求出二进制的数结果来。程序流程图如图22。这里我们规定:被转换的ASCII码十进制数存放在3500h3504h单位中。而转换结果在35103511单位中.实验步骤(1) 输入程序并检查无误。(2) 在35003504h单元存入十进制12的ASCII码,即e3500,并输入3030303132。(3) g2000,运行程序,并用CTR+C来中断程序返回监控态。(4) 用d3510查看结果,应为3510 0C 00(5) 反复试几组数,考查程序的正确性。 实验流程图如下:代码和运行结果:DATA SEGMENTORG 3500H X DB '0' ,'1' ,'2', '3' ,'4' /初始化数据DATA ENDS /定义数据段CODE SEGMENTASSUME CS:CODE ,DS:DATASTART:MOV AX , DATAMOV DS , AXMOV AX , 0MOV CX , 05H /定义循环次数MOV DI , 3500H /表明地址偏移量MOV BX , 0AH /十进制数10MOV DH,00HMOV DL,DS:DI /取数SUB DL, 30HNEXT: MUL BXMOV DL,DS:DISUB DL, 30HADD AX,DXINC DILOOP NEXT /代码循环,直到寄存器CX值为0MOV DS:3510H,AX /存储最后结果CODE ENDSEND STARTEND实验结论:我在35003504h单元存入十进制数1234的ASCII码,在3510h单元存储的结果是04D2,与理论结果一样。2将从键盘输入的五位十进制数的ASCII码已存在3500起始的内存单元中。把它转换成BCD码后,再按位分别存入350A起始的内存单元内。若输入的不是十进制的ASCII码,则显示FF.实验步骤:(1) 输入程序并检查无误。(2) 在35003504H单元存入五位十进制数的ASCII码,即e3500并输入31,32,33,34,35。(3) G=2000,运行以上程序。(4) D350A,显示结果为:0000:350A 01 02 03 04 CC(5) 反复试几组数,考查程序的正确性。 实验流程图如下:代码和运行结果:ASSUME CS:CODECODE SEGMENTSTART:MOV SI,3500HMOV DI,350AHMOV BX,0009HMOV CX,0005HMOV AH,00L:MOV AL,SISUB AL,30HJS FALSECMP BL,ALJS FALSETRUE:MOV DI,ALJMP NEXTFALSE:MOV AL,0FFHMOV DI,ALNEXT:INC DIINC SILOOP LINT 3CODE ENDSEND START我们如果输入:31 32 33 34 35,输出01 02 03 04 05,可见输出结果正确。我们如果输入:31 40 29 30 36,输出01 FF FF 00 06,可见输出结果正确。3将十六位二进制数转换为ASCII码表示的十进制数。十六进制数的值域为065535,最大可转换为五位十进制数。实验步骤(1) 输入程序并检查无误。(2) 在35003501H单元中存放0C00,运行程序并检查结果,应看到35103514H单元中的数依次为3030303132。实验流程图如下:代码和运行结果:STACK SEGMENT STACK 'STACK'DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKORG 2000HSTART:MOV SI,3500HMOV BX,0MOV DI,3515HMOV AL,SIMOV AH,SI+1MOV DX,0MOV BX,0AHPRO1: DEC DIDIV BXADD DL,30HMOV DI,DLMOV DX,0CMP AX,0JNE PRO1PRO2: CMP DI,3510H JE EXITDEC DIMOV DL,30HMOV DI,DL JMP PRO2EXIT: MOV AX,4C00HINT 21HCODE ENDSEND START我们如果输入0C00,在3510处开始看到:30 30 30 31 32我们如果输入10 12,在3510处开始看到:30 34 36 32 34实验结论:程序执行结果和理论值相符4. 十六进制数转换为ASCII码设经过CPU处理后的十六进制存放在起始地址为3500H的内存中,把它们转换成ASCII码之后,再分别存入起始地址为3510的内存单元中。参考流程图如图25所示。实验步骤(1) 输入程序并检查无误。(2) 在35003501H单元中存入四位16进制数203B,即:e3500,并输入3B,20。(3) G2000,运行程序(4) D350A,显示结果为: 0000:350A 42 33 30 32 输入数与结果ASCII码对应顺序相反实验流程图如下:实验代码和结果:DATAS SEGMENTCOUNT EQU 4ORG 3500HHEX DW 203BHORG 3510HRES DB 4 DUP(?)DATAS ENDSSTACKS SEGMENTDW 50 DUP(?)TOP LABEL WORDSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV DX,HEX /将待转换的16进制数放在DX寄存器中MOV SI,OFFSET RES /目标地址放在SI寄存器中MOV CX,COUNTTRAN: MOV AX,DX /将16进制数装载到AX寄存器中AND AX,000FH /取出低四位CMP AL,9 /与9作比较JA VOCABCMP AL,0 /与0作比较JB VOCABMOV BL,30H /若为0到9的数字ADD BL,ALJMP NEXTVOCAB:MOV BL,41H /若为字母,则进行以下处理SUB AL,0AHADD BL,ALNEXT:MOV SI,BL /将转换后的值存入目标地址中INC SIMOV BL,4 /将16进制数右移4位XCHG BL,CLSHR DX,CLXCHG BL,CLLOOP TRANMOV AH,4CHINT 21HCODES ENDSEND START存储单元初始值为3B20,程序运行后结果为:如果将存储单元的初始值修改为5F34,则程序运行结果如下:5题实验流程图5. BCD码转换为二进制码设四个二位十进制的BCD码存放在起始地址为3500H的单元中,转换出的二进制数码存入起始为3510的内存单元中,程序流程图如图26。实验步骤:(1) 输入程序并检查无误(2) 在35003501H单元中存入四个十进制数(12,34,56,78)的BCD码,即e3500,输入01.02.03.04.05.06.07.08。(3) G2000,运行程序(4) D3510,显示结果为3510 0C 00 22 00 38 00 4E 00实验代码和结果:DATA SEGMENTORG3500HBUF DB100 dup(0);DATA ENDS STACK SEGMENTPARA STACK 'STACK'DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOV CX,4LEA DI,BUF LEA SI,BUF+10H;存转化后的数MOV BL ,10 LCW:MOV AL ,DIMUL BL INC DIMOV AH,00HADD AL, DIMOV SI,ALINC SIINC SI ;INC DI LOOP LCWEXIT:MOVAX,4C00HINT21HCODEENDSENDSTART如果我们输入的数据为01,02,03,04,05,06,07,08图 6-1如果我们输入的数据为09,08,07,06,05,04,03,02四 实验感悟:学习汇编语言打破了我传统的思维模式,这门语言已不再是以前学C语言和C+语言时那种模式,虽然用汇编语言编写的程序运行速度快,实时性好,占用内存空间小,能最大限度发挥硬件的作用,但汇编语言编写的程序效率低,程序设计的技巧性强,因此他要求编写人员既要熟悉计算机的硬件结构,又要熟悉计算机的指令系统,才有可能编写出高质量的汇编语言程序。汇编语言学习起来虽然不容易,但是我愿意去探索其中的奥妙,今后汇编语言将成为我打开计算机和互联网的IT世界的敲门砖,我还需要多多努力。【精品文档】第 11 页

    注意事项

    本文(王金龙——第二次微机实验、.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开