當前位置:編程學習大全網 - 編程軟體 - 單片機二進制轉十進制程序

單片機二進制轉十進制程序

整理壹下格式,原來的程序如下:

DBUF1 EQU 40H ;定義數據存儲區起始地址

NUM EQU 5AH ;給定轉換的數據

ORG 0000H

CALL HEXDIV

SJMP $

HEXDIV:

MOV R1, #DBUF1 ;R1指向數據存儲區的起始地址

MOV A, #NUM

MOV B, #100

DIV AB ;除以100,求得百位值

MOV @R1, A ;百位存放在存儲區起始地址單元中

MOV A, #10 ;

XCH A, B ;把余數放A,除數放B

DIV AB ;除以10,求得十位值

INC R1 ;

MOV @R1, A ;十位放在存儲區起始地址+1單元中

INC R1 ;

MOV A, B

MOV @R1, A ;個位放在存儲區起始地址+2單元中

RET

END

---------------

這個子程序,編寫的太濫了,去掉三分之壹的指令,都是可以的。

簡化後,功能完全相同,如下。

MOV A, #NUM

MOV B, #100

DIV AB ;除以100,求得百位

MOV DBUF1, A ;百位存放到存儲區的起始地址單元中

MOV A, #10 ;

XCH A, B ;把余數放A,除數放B

DIV AB ;除以10

MOV DBUF1 + 1, A ;十位放到存儲區起始地址+1單元中

MOV DBUF1 + 2, B ;個位放到存儲區起始地址+2單元中

RET

原文的註釋,有些,寫的也不對路。

如傳送指令的註釋,應該寫:數據存放到...,它卻寫:數據存放在...。

有些書,就是在瞎編,不看也罷。

  • 上一篇:少兒編程的好處和意義
  • 下一篇:三菱PLC中D8340怎麽會顯示出虛線了?
  • copyright 2024編程學習大全網