北航微机原理上机实验之二(4位BCD码相加).doc

北航微机原理上机实验之二(4位BCD码相加).doc

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

2011- 2012 学年 第一学期 微机原理实验二:4位BCD码相加 班级 392311(转系)学院 高等工程 姓名 李 柏 学号 3903·2415 2011年12月4日 本人声明 我声明,本论文为本人独立完成的,在完成论文时所利用的一切资料均已在参考文献中列出。 1.实验目的 学习字符型数据与数值型数据的相互转换方法,了解BCD码输入及相加的方法。 2.实验内容 在数据段中定义3个变量x1,x2,x3,用于存储从键盘上输入的两个BCD码,要求低位数据占高位置存放,x3存放这两个BCD码的和;从键盘输入两个4位的BCD码,检查是否为数字键,非数字键不接收;将输入的2个4位字符型数据转换为4位非压缩BCD码存于数据段的变量中;将2个4位非压缩BCD码相加,将结果利用INT21H的2号功能显示在计算机屏幕上。 3.实验原理图 略。 4.程序流程图 (数据段)X1 X2 X3 … (码段)… … TYPEIN MAIN … … 5.程序清单 DATA SEGMENT ;用X1与X2定义数据段存储输入的十进制数,用X3存储运算结果. X1 DB 4 DUP(0) X2 DB 4 DUP(0) X3 DB 5 DUP(0) ;两个4位数相加可以生成5位数,因此定义5个字节. DATA ENDS STACK SEGMENT STACK ;定义堆栈段,该定义也可不写,由系统自动分配空间. DW 100 DUP(?) STACK ENDS CODE SEGMENT ;码段定义 ASSUME CS:CODE,DS:DATA,SS:STACK ;段分配伪指令 TYPEIN PROC ;定义子程序TYPEIN,处理每一个输入的字符 AGAIN:MOV AH, 8 ;使用DOS的8号功能,即【将键盘的输入存入AL且无回显】 INT 21H CMP AL, 30H ;30H即‘0’,将键盘输入与’0’和’9’比较,一旦不在此范围内则认定输入无效 JB AGAIN CMP AL, 39H JA AGAIN PUSH AX ;此处将输入值入栈保存,即保护现场,因为下文运用2号功能显示时中断指令INT 21H会破坏AL寄存器 MOV DL, AL MOV AH, 2 INT 21H ;执行2号指令,将DL中存储的AL【显示】 POP AX ;恢复现场 ret ;TYPEIN过程的返回指令 TYPEIN endp ;结束子程序TYPEIN的书写 MAIN PROC FAR ;远调用 PUSH DS ;以下三句为结尾返回DOS做准备 MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX ;以下两句将指针对准数据段内的X1处 MOV SI, OFFSET X1 MOV CX, 4 ;设置了4次循环,为了在存储器的变量X1内存放被加数 NEXT1: CALL TYPEIN ;调用子程序TYPEIN AND AL, 0FH;将AL高4位清零,因为输入的数字仅仅占用AL低4位就足够用,清零则是为了防止高4位对存储结果的干扰 MOV [SI], AL ;将AL存入SI指向的位置,而SI在最初指向X1的EA INC SI ;指针加1 (因为PTR byte) LOOP NEXT1 ;循环执行4次,将被加数存入X1变量内,但是注意先输入的是十进制的高位,所以高位在低地址。 MOV DL, + ;上屏显示一个+号 MOV AH, 2 INT 21h MOV SI, OFFSET X2 ;以下部分完全同理,输入加数,依然占用4字节,存入X2变量内 MOV CX, 4 NEXT2: CALL TYPEIN AND AL, 0FH MOV [SI], AL INC SI LOOP NEXT2 ;至此将加数存入了X2之中,以下进行加法运算 MOV SI, (OFFSET X2)-1 ;以下三句将SI,DI,BX分别对准了被加数,加数以及结果的最高位 MOV DI, (OFFSET X3)-1 MOV BX, (OFFS

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档