一段C51的二进制转十进制的程序

LOOP1:

 
CLR A                   ;二转十子程序MOV R2,TH0  MOV R3,TL0

MOV R4,A                ;将R4R5R6分别清零

MOV R5,A

MOV R6,A

MOV R7,#10H           ;R7=(#10H)=16

LOOP2:

 

 
CLR C               ;请进为标志位,为循环移位做准备

MOV A,R3              ;低八位循环左移 最高位数据给了C
最低位补零                  

RLC A

MOV R3,A

MOV A,R2              ;高八位左移。 C中的值移进R2的最低位(即高八位的最低位)

RLC A

MOV R2,A

MOV A,R6              ;将R6中的值乘以2(带进位位的)

ADDC A,R6

DA A                  ;十进制调整指令

MOV R6,A              

MOV A,R5              ;同理R5乘以二

ADDC A,R5

DA A

MOV R5,A

MOV A,R4              ;同理R4乘以二

ADDC A,R4

DA A

MOV R4,A

DJNZ R7,LOOP2         ;该段程序循环16次 ,因为总共有16个位的数据

RET

    原文作者:进制转换
    原文地址: https://blog.csdn.net/caoweiyan/article/details/8217977
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞