一段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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章