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

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

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

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术实验报李柏 微机原理与接口技术实验报告李柏 2011- 2012 学年 第一学期 微机原理实验二: 微机原理实验二:4 位 BCD 码相加 班级 392311 (转系) 学院 高等工程 姓名 李 柏 学号 3903·2415 2011 年 12 月 4 日 本人声明 我声明,本论文为本人独立完成的,在完成论文时所利用的一切资料均已在参考文献中列出。 1. 1.实验目的 学习字符型数据与数值型数据的相互转换方法,了解BCD 码输入及相加的方法。 2. 2.实验内容 显示在计算机屏幕上。开始3.实验原理图略。初始设定,指定段寄存器等等4.程序流程图按位循环地输入 X1 并按位上屏显示上屏显示一个+号按位循环地输入 X2 并按位上屏显示上屏显示一个=号按位循环地运算加和的低 4 位,存入 X3 相应位置利用 ADC 获取加和的最高位真实值,存入 EA=X3 位置将 X3 存储的加和结果上屏显示退出(数据段) 显示在计算机屏幕上。 开始 3.实验原理图 略。 初始设定,指定段寄存器等等 4.程序流程图 按位循环地输入 X1 并按位上屏显示 上屏显示一个+号 按位循环地输入 X2 并按位上屏显示 上屏显示一个=号 按位循环地运算加和的低 4 位,存入 X3 相应位置 利用 ADC 获取加和的最高位真实值,存入 EA=X3 位置 将 X3 存储的加和结果上屏显示 退出 (数据段)X1 X2 X3 … (码段)… … TYPEIN MAIN … … 微机原理与接口技术实验报李柏 微机原理与接口技术实验报告李柏 5. 5.程序清单 X1DB4 DUP(0)X2DB4 DUP(0)X3DB5 DUP(0)DATA SEGMENT ;用 X1 X1 DB 4 DUP(0) X2 DB 4 DUP(0) X3 DB 5 DUP(0) DATA  ENDS ;两个 4 位数相加可以生成 5 位数,因此定义 5 个字节. STACK SEGMENT STACK ;定义堆栈段,该定义也可不写,由系统自动分配空间. DW 100 DUP(?) STACK CODE ENDS 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 MOV MOV AX ;此处将输入值入栈保存,即保护现场,因为下文运用 2 号功能显示时中断指令INT 21H 会破坏 AL 寄存器 DL, AL 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 MOV INC LOOP MOV MOV INT MOV MOV AL, 0FH;将 AL 高 4 位清零,因为输入的数字仅仅占用 AL 低 4 位就足够用,清零则是为了防止高 4 位对存储结果的干扰 [SI], AL ;将AL 存入 SI 指向的位置,而 SI 在最初指向 X1 的 EA SI ;指针加 1 (因为 PTR BYTE) NEXT1 ;循环执行 4 次,将被加数存入X1 变量内,但是注意先输入的是十进制的高位,所以高位在低地址。DL, + ;上屏显示一个+号 AH, 2 21H SI, OFFSET X2 ;以下部分完全同理,输入加数,依然占用 4 字节,存入 X2 变量内CX, 4 NEXT2: CALL TYPEIN AND MOV INC LOOP MOV MOV MOV AL, 0FH [SI], AL SI NEXT2 ;至此将加数存入了 X2 之中,以下进行加法运算 SI, (OFFSET X2)-1 ;以下三句将 SI,DI,BX 分

文档评论(0)

hao187 + 关注
官方认证
内容提供者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档