本文想實現字符串末位最後5位按照"00000"-"FFFFF"的16進制計數,每秒計數加1的實現,并且以字符串顯示。
如何實現上述功能,有兩個方法:
一、将後5位用指令DHABIN轉換成十進制數據,執行DINCP加1,然後再用DBINHA轉換成字符串,說起來簡單,做起來還要注意幾個細節的,先看完整程序.
1、用WTOB指令将字符串分解,然後再把末位五位重新組合。
2、用DHABIN指令轉換成十進制數,這裡要注意DHABIN指令需要保證待轉換區域内的數據為0-9,A-F之間才可以,如果有其它的數據在裡面,會報錯的,所以提前添加H30到相關區域,然後再轉換。
3、轉換完成用DINCP指令 1
4、再次用DBINHA将十進制數據轉換成16進制字符串。
5、用WTOB指令将字符串分解。
6用BTOW指令将字符重新組成成字符串,也就是我們最後得到的計數值 1的字符串。
二、第二個方法原理比較簡單,就是按位 1,當位數據大于F時,本位清零,上一位 1。這個方法不需要複雜的進制轉換,隻是如果位數過多,寫起程序來比較麻煩,先看程序
1、先把字符串用WTOB指令分解成字節。
2、按位 1,這裡注意如果數字是9,在16進制是H39,再加1就變成H3A,這個并不是字母A,所以要做下判斷,當位大于H39時,傳送字母A給寄存器,也就是H41,如果大于H46(F),則MOV H30 D,然後上一位 1.
3、後五位都按照這個邏輯進行處理。
4、處理完成用BTOW指令轉換成字符串。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!