网站大量收购闲置独家精品文档,联系QQ:2885784924

北邮微机原理软件实验报告 - 实验报告 - 书业网.doc

北邮微机原理软件实验报告 - 实验报告 - 书业网.doc

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北邮微机原理软件实验报告 - 实验报告 - 书业网

北邮微机原理软件实验报告 - 实验报告 - 书业网 微机原理软件实验报告 实验二分支,循环程序设计 一、预习题: 1.十进制数 0 -- 9 所对应的 ASCII 码是什么? 如何将十进制数 0 -- 9 在屏幕上显示出来? 答: 要屏显0-9的数码,可以调用02h中断,然后将要显示的数码的ASCII码存进DL里,然后执行INT 21H就可以打印字符。当然,若不只一个数,调用09h中断(显示字符串)更好,但要将DS:DXZ指向要显示的数字在内存中的首地址,并要求以$结束。 2.如何检验一个数为正,为负或为零? 你能举出多少种不同的方法? 答:CMP X,0 检验标志位CF CF=1,X为负数 CF=0接着检验ZF:ZF=1,X为零,ZF=0,X为正数 二、实验目的: 1.开始独立进行汇编语言程序设计; 2.掌握基本分支,循环程序设计; 3.掌握最简单的 DOS 功能调用. 三、实验内容: 1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过 9. 2.编写一个程序统计数据区中正数,负数和零的个数. 四、实验源代码 assume cs:code,ds:data data segment buff db 1,2,3,4,5,-1,-2,-3,0,0 ;安排的数据区 string db #39;gt;0:#39; plus db 0 db 0ah,0dh string1 db #39;=0:#39; zero db 0 db 0ah,0dh string2 db #39;lt;0:#39; minus db 0 db #39;$#39; data ends code segment start:movax,data movds,ax mov cx,10 mov dx,0 mov ah,0 ;初始化,并将CX赋为10,因为共有10个数 ;用变量plus来存储正数的个数 ;用变量zero来存储零的个数 ;用变量minus来存储负数的个数 ;将计数器dx,ah初始化为0 lea bx,buff compare:cmp byte ptr [bx],0 jgeplu inc ah jmp next ;取出一个数与0进行比较 ;大于等于0,跳至plu执行 ;小于0,用ah暂存小于0的个数,ah+1 ;比完后进行下一个数的比较 plu: je zer ;等于0,跳至zer执行 inc dl jmp next zer: inc dh ;大于0,用dl暂存大于0的个数,dl+1 ;比完后进行下一个数的比较 ;等于0,用dh暂存等于0的个数,dh+1 ;将dl,dh,ah分别赋值给变量plus,zero,minus,其ASCII分别加next:incbx loop compare 48 add dl,48 movplus,dl add dh,48 movzero,dh add ah,48 movminus,ah mov ah,09h lea dx,string int 21h ;调用09h中断,将最终结果输出 mov ax,4c00h int 21h code ends 否 end start 实验截图 六、实验总结及心得体会: 这个实验有两个要点。一是字符显示。要显示数字字符,首先要把数据转换成ASCII码,然后调用DOS功能将其显示。其中使用09H号功能时,要特别注意每段待输出的字符串要以$’结尾,不然无法识别串尾,输出乱码。二是判断正负数。本程序选用CMP指令来实现该功能。注意与0相比时,要使用有符号数的条件跳转指令,JGE等等,在使用无符号数的条件跳转指令时,不是与0相比较。 实验三代码转换程序设计 一、预习题: 1.如何将输入的两个字符(0 -- 9)变为十进制或二进制数? 答:两字符减去0的ASCII码(30H)后,高位数乘以十加上低位数,即变为十进制数。 2.如何将选出的最小值(二进制或十进制)变为 ASCII 码再进行显示? 答:将十进制数除以十,商和余数分别加上0的ASCII码后显示在屏幕上。 3.你觉得采用二进制运算还是十进制运算更适合于这个实验

文档评论(0)

raojun00003 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档