當前位置:首頁 > 單片機 > 單片機
[導讀]一 二進制數(shù)轉換為ASCⅡ碼 將一個字節(jié)的二進制數(shù)轉換為兩位16進制數(shù)的ASCⅡ碼 main: mov a,@0x9f ;二進制數(shù)為0x9f mov 0x30,a ;二進制數(shù)存入0x30 mov a,@0x02 mov 0x10,a ;0x10中存放轉換次數(shù) mov a,@0x

二進制數(shù)轉換為ASCⅡ碼
 將一個字節(jié)的二進制數(shù)轉換為兩位16進制數(shù)的ASCⅡ碼
 main: mov a,@0x9f ;二進制數(shù)為0x9f
 mov 0x30,a ;二進制數(shù)存入0x30
 mov a,@0x02
 mov 0x10,a ;0x10中存放轉換次數(shù)
 mov a,@0x31
 mov 0x04,a ;0x04中為轉換后數(shù)據(jù)存放地址
 mov a,0x30
 B1: and a,@0x0f ;取a低4位
 mov 0x00,a
 sub a,@0x09 ;低4位大于9跳往B2
 jbs 0x03,0
 jmp B2
 mov a,0x00 ;低4位不大于9則加0x30
 add a,@0x30
 mov 0x00,a ;將ASCⅡ碼存入0X04所指單元
 jmp B3
 B2: mov a,0x00 ;大于9則加0X37
 add a,@0x37
 mov 0x00,a
 B3: swapa 0x30 ;將0X30高4位換入A低4位
 inc 0x04 ;存儲地址加1
 djz 0x10 ;循環(huán)次數(shù)減1,為0則返回
 jmp B1 ;不為0繼續(xù)轉換
 self: jmp self
 eop

 二 多字節(jié)二進制加法
 0X20,0X21中的二進制無符號數(shù)與0X22,0X23中的二進制無符號數(shù)相加,結果放在0X24,0X25,0X26中,低地址中放低字節(jié)數(shù)據(jù)。
 Main: mov a,@0x78 ;賦值
 mov 0x20,a
 mov a,@0xc6
 mov 0x21,a
 mov a,@0x86
 mov 0x22,a
 mov a,@0x9e
 mov 0x23,a
 mov a,@0x0 ;0x26單元清0
 mov 0x26,a
 mov a,0x21
 add a,0x23
 mov 0x25,a ;高字節(jié)相加,結果送0x25
 jbc 0x03,0
 inc 0x26 ; 有進位則0x26加1
 mov a,0x20
 add a,0x22
 mov 0x24,a ;低字節(jié)相加,結果送0x24
 jbs 0x03,0
 jmp self ;無進位跳self
 inc 0x25 ;有進位0x25加1
 jbc 0x03,0
 inc 0x26 ; 有進位0x26加1
 self: jmp self
 eop
 三 多字節(jié)二進制減法
 0x20,0x21中的二進制無符號數(shù)減0x22,0x23中的二進制無符號數(shù),
 低地址中放低字節(jié)數(shù)據(jù)。假設被減數(shù)大于減數(shù)。
 注意:(1)sub指令減出結果為正時,c標志置1。
 (2)sub指令減出結果為0時,c標志也置1。
 即,sub指令執(zhí)行后,c標志清0表示結果為負。
 main: mov a,@0x67 ;賦值
 mov 0x20,a
 mov a,@0xff
 mov 0x21,a
 mov a,@0xe8
 mov 0x22,a
 mov a,@0x44
 mov 0x23,a ; 高字節(jié)相減
 sub a,0x21
 mov 0x25,a ;結果存0x25
 mov a,0x22 ;低字節(jié)相減
 sub a,0x20
 mov 0x24,a
 jbs 0x03,0
 dec 0x25 ;有借位則0x25減1
 self: jmp self
 eop
 四 二進制乘法運算
 EM78單片機沒有乘法指令,所以乘法運算需要轉化為加法運算。0X20單元數(shù)據(jù)乘以0X21單元數(shù)據(jù),結果放在0X22,0X23中。
 main: mov a,@0x0 ;0x22,0x23單元清0
 mov 0x22,a
 mov 0x23,a
 mov a,@0x3f ;賦值
 mov 0x20,a
 mov a,@0x22
 mov 0x21,a
 mul1: mov a,0x20 ;0x20與0x22內容相加
 add 0x22,a
 jbc 0x03,0
 inc 0x23 ;有進位0x23加1
 djz 0x21 ;0x21中次數(shù)減到0則結束
 jmp mul1 ;沒減到0則繼續(xù)
 self: jmp self
 eop
 五 二進制除法運算
 多字節(jié)二進制除法
 被除數(shù)為3個字節(jié),在0x20、0x21、0x22單元中,0x22.7為最高位,0x20.0為最低位。
 除數(shù)為2個字節(jié),在0x30、0x31中。
 算法:EM78單片機沒有除法指令,而且本例中除法為多字節(jié)除法,可采用如下算法。
 將被除數(shù)擴充一個字節(jié)0X23,0X23清0。被除數(shù)左移1位,0X23、0X22中數(shù)據(jù)減去0X31、0X30中數(shù)據(jù),夠減則減且0X20.0置1,減出結果存入0X23、0X22;不夠減則0X23、0X22保持不變,0X20.0清0。然后被除數(shù)再左移1位,重復上述過程。共循環(huán)16次,最后0X23、0X22中得相減余數(shù),0X21、0X20中得商。注意,若被除數(shù)左移后C標志為1,則不比較0X23、0X22與0X31、0X30數(shù)據(jù)大小關系而直接相減。
 main: mov a,@0x55 ;被除數(shù)賦值

 mov 0x20,a
 mov 0x21,a
 mov 0x22,a
 mov a,@0x0 ;被除數(shù)擴充1字節(jié)并清0
 mov 0x23,a
 mov a,@0x12 ;除數(shù)賦值
 mov 0x30,a
 mov 0x31,a
 mov a,@0x10 ;循環(huán)次數(shù)為16
 mov 0x32,a
 again: call rt_sub ;調移位除法子程
 djz 0x32 ;16次循環(huán)完成則結束
 jmp again ;未完成則繼續(xù)
 self: jmp self
 rt_sub:
 bc 0x03,0 ;c標志清0
 rlc 0x20 ;被除數(shù)左移1位
 rlc 0x21
 rlc 0x22
 rlc 0x23
 jbc 0x03,0
 jmp rt3 ;c標志為1則直接相減
 mov a,0x23 ;c標志為0則先比較大小
 mov 0x25,a
 mov a,0x22
 mov 0x24,a
 mov a,0x31 ;先比較高位
 sub 0x25,a
 jbc 0x03,2
 jmp rt1 ;高位相等跳rt1比較低位
 jmp rt2 ;高位不等跳rt2
 rt1: mov a,0x30 ;比較低位
 sub 0x24,a
 jbc 0x03,2
 jmp rt3 ;低位也相等則跳rt3,相減,上1
 rt2: jbs 0x03,0
 ret ;減數(shù)大則返回,減數(shù)小則相減,上1
 rt3: bs 0x20,0 ;上1
 call sub_2b ;調2字節(jié)減法子程
 ret
 sub_2b:
 mov a,0x31 ;高字節(jié)相減
 sub 0x23,a
 mov a,0x30 ;低字節(jié)相減
 sub 0x22,a
 jbc 0x03,2
 ret ;低字節(jié)相等,無借位,返回
 jbc 0x03,0
 ret ;無借位,返回
 dec 0x23 ;低字節(jié)相減有借位,高字節(jié)結果減1
 ret
 eop
 六 BCD數(shù)轉換為二進制數(shù)
 兩字節(jié)壓縮BCD碼轉換為兩字節(jié)二進制數(shù)。算法如下:
 BCD碼abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,將各位BCD碼分離出之后,即可根據(jù)此式轉換為二進制數(shù)。涉及到乘法運算和多字節(jié)加法運算。
 0X20,0X21中為BCD碼,0X21高4位為最高位。轉換結果放在0X30,0X31中。
 main: mov a,@0x79
 mov 0x20,a
 mov a,@0x54
 mov 0x21,a ;賦值
 mov a,0x20
 and a,@0x0f
 mov 0x22,a
 swapa 0x20
 and a,@0x0f
 mov 0x23,a
 mov a,0x21
 and a,@0x0f
 mov 0x24,a
 swapa 0x21
 and a,@0x0f
 mov 0x25,a ;BCD碼展開后存于0X22,0X23,0X24,0X25
 mov a,0x25, ;0X25為最高位
 mov 0x30,a
 mov a,@0x0 ;多字節(jié)加法高位為0
 mov 0x31,a
 mov a,0x24
 mov 0x32,a
 call a_b ;調子程
 mov a,0x23
 mov 0x32,a
 call a_b
 mov a,0x22
 mov 0x32,a
 call a_b
 self: jmp self
 a_b:
 mov a,@0x0 ;0X34,0X35存儲中間結果
 mov 0x34,a
 mov 0x35,a
 mov a,@0x0a ;實現(xiàn)乘10
 mov 0x33,a
 a1: mov a,0x35 ;兩字節(jié)二進制加法,在本例中高字節(jié)肯定無進位
 add a,0x31
 mov 0x35,a
 mov a,0x34
 add a,0x30
 mov 0x34,a
 jbc 0x03,0
 inc 0x35
 djz 0x33
 jmp a1
 mov a,0x32
 add 0x34,a
jbc 0x03,0
 inc 0x35
 mov a,0x34
 mov 0x30,a
 mov a,0x35
 mov 0x31,a
 ret
 eop
 七 二進制數(shù)轉換為BCD碼
 本例為單字節(jié)二進制數(shù)(0X20)轉換為非壓縮BCD碼,存在0X25,0X24,0X23中,0X25為百位,0X23為個位。
 main: mov a,@0xa4 ;賦值
 mov 0x20,a
 mov 0x21,a
 mov 0x22,a
 mov a,@0x0 ;0x23,0x24,0x25單元清0
 mov 0x23,a
 mov 0x24,a
 mov 0x25,a
 mov a,@0x64 ;對100的個數(shù)計數(shù)
 mov 0x26,a
 mov a,@0x25 ;百位存在0x25中
 mov 0x04,a
 call a0 ;調計數(shù)子程
 mov a,@0x0a ;對10的個數(shù)計數(shù)
 mov 0x26,a
 dec 0x04 ;個位存在0x24中
 call a0
 mov a,0x22 ;除去百位,十位,余下的即個位,存入0x23
 mov 0x23,a
 self: jmp self
 a0: ;計數(shù)子程
 mov a,0x26
 sub 0x22,a
 jbs 0x03,2
 jmp a1
 inc 0x00 ;無余數(shù)則對應位加1
 mov a,@0x0 ;0x21與0x22在返回時應保持相同
 mov 0x21,a
 ret
 a1: jbs 0x03,0 ;小于則跳a2
 jmp a2
 inc 0x00 ;大于則計數(shù)值加1
 mov a,0x22
 mov 0x21,a ;將0x22保存到0x21中
 jmp a0 ;跳回a0繼續(xù)計數(shù)
 a2: mov a,0x21 ;0x21中保存的減之前的數(shù)據(jù),此時恢復到0x22
 mov 0x22,a
 ret
 eop

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉