8085将BCD数转换为二进制的程序

问题—— 编写一个汇编语言程序,用8085微处理器将2位BCD数转换成等价的二进制数。

null

例如:

Input : 72H (0111 0010)2
Output : 48H (in hexadecimal) (0011 0000)2
((4x16)+(8x1))=72

图片[1]-8085将BCD数转换为二进制的程序-yiteyi-C++库

算法:

  1. 将BCD编号加载到累加器中
  2. 将2位BCD编号拆分为两个独立的数字。让左边的数字是BCD 1. 正确的是BCD 2.
  3. 倍增BCD 1. 乘以10,再加上BCD 2. 对它

如果2位BCD数为72,则其二进制等价物为 7×OAH+2=46小时+2=48小时

步骤:

  1. 将BCD编号从内存位置(201FH,任意选择)加载到累加器中
  2. 将累加器的值暂时存储在B中
  3. 获取BCD 2. 通过将蓄能器与0FH并存储在C中
  4. 通过将B中的值移动到A,并使用F0H恢复累加器的原始值
  5. 如果累加器中的值等于0,则BCD 2. 是最终答案,并将其存储在内存位置2020H(任意)
  6. 否则,将蓄能器向右移动4次以获得BCD 1. .下一步是将BCD相乘 1. 到0AH
  7. 乘法:移动BCD 1. 用0AH作为计数器初始化E。将累加器清除到0,并将D添加到E中多次
  8. 最后,将C添加到累加器中,并将结果存储到2020H

2020H包含结果。

住址 标签 记忆的
2000小时 LDA 201FH
2001H
2002H
2003H 莫夫B,A
2004H ANI 0FH
2005H
2006H 莫瓦
2007年 电影A,B
2008H ANI F0H
2009年
200AH JZ SKIPMULTIPLY
200BH
200CH
200DH RRC
200EH RRC
200FH RRC
2010小时 RRC
2011H MOV D,A
2012年2月 XRA A
2013H MVI E,0AH
2014H
2015小时 总和 加D
2016H DCR E
2017H JNZ SUM
2018H
2019H
201AH SKIPMULTIPLY 加C
201BH STA 2020H
201CH
201DH
201EH HLT

将BCD号码存储在201FH中。2020H包含其二进制等价物。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享