<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > EM78系列單片機的數值轉換子程序

EM78系列單片機的數值轉換子程序

作者: 時(shí)間:2011-05-17 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/172786.htm

一 二進(jìn)制數為ASCⅡ碼
將一個(gè)字節的二進(jìn)制數為兩位16進(jìn)制數的ASCⅡ碼
main: mov a,@0x9f ;二進(jìn)制數為0x9f
mov 0x30,a ;二進(jìn)制數存入0x30
mov a,@0x02
mov 0x10,a ;0x10中存放轉換次數
mov a,@0x31
mov 0x04,a ;0x04中為轉換后數據存放地址
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)次數減1,為0則返回
jmp B1 ;不為0繼續轉換
self: jmp self
eop

二 多字節二進(jìn)制加法
0X20,0X21中的二進(jìn)制無(wú)符號數與0X22,0X23中的二進(jìn)制無(wú)符號數相加,結果放在0X24,0X25,0X26中,低地址中放低字節數據。
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 ;高字節相加,結果送0x25
jbc 0x03,0
inc 0x26 ; 有進(jìn)位則0x26加1
mov a,0x20
add a,0x22
mov 0x24,a ;低字節相加,結果送0x24
jbs 0x03,0
jmp self ;無(wú)進(jìn)位跳self
inc 0x25 ;有進(jìn)位0x25加1
jbc 0x03,0
inc 0x26 ; 有進(jìn)位0x26加1
self: jmp self
eop
三 多字節二進(jìn)制減法
0x20,0x21中的二進(jìn)制無(wú)符號數減0x22,0x23中的二進(jìn)制無(wú)符號數,
低地址中放低字節數據。假設被減數大于減數。
注意:(1)sub指令減出結果為正時(shí),c標志置1。
(2)sub指令減出結果為0時(shí),c標志也置1。
即,sub指令執行后,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 ; 高字節相減
sub a,0x21
mov 0x25,a ;結果存0x25
mov a,0x22 ;低字節相減
sub a,0x20
mov 0x24,a
jbs 0x03,0
dec 0x25 ;有借位則0x25減1
self: jmp self
eop
四 二進(jìn)制乘法運算
沒(méi)有乘法指令,所以乘法運算需要轉化為加法運算。0X20單元數據乘以0X21單元數據,結果放在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 ;有進(jìn)位0x23加1
djz 0x21 ;0x21中次數減到0則結束
jmp mul1 ;沒(méi)減到0則繼續
self: jmp self
eop
五 二進(jìn)制除法運算
多字節二進(jìn)制除法
被除數為3個(gè)字節,在0x20、0x21、0x22單元中,0x22.7為最高位,0x20.0為最低位。
除數為2個(gè)字節,在0x30、0x31中。
算法:沒(méi)有除法指令,而且本例中除法為多字節除法,可采用如下算法。
將被除數擴充一個(gè)字節0X23,0X23清0。被除數左移1位,0X23、0X22中數據減去0X31、0X30中數據,夠減則減且0X20.0置1,減出結果存入0X23、0X22;不夠減則0X23、0X22保持不變,0X20.0清0。然后被除數再左移1位,重復上述過(guò)程。共循環(huán)16次,最后0X23、0X22中得相減余數,0X21、0X20中得商。注意,若被除數左移后C標志為1,則不比較0X23、0X22與0X31、0X30數據大小關(guān)系而直接相減。
main: mov a,@0x55 ;被除數賦值
mov 0x20,a
mov 0x21,a
mov 0x22,a
mov a,@0x0 ;被除數擴充1字節并清0
mov 0x23,a
mov a,@0x12 ;除數賦值
mov 0x30,a
mov 0x31,a
mov a,@0x10 ;循環(huán)次數為16
mov 0x32,a
again: call rt_sub ;調移位除法子程
djz 0x32 ;16次循環(huán)完成則結束
jmp again ;未完成則繼續
self: jmp self
rt_sub:
bc 0x03,0 ;c標志清0
rlc 0x20 ;被除數左移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 ;減數大則返回,減數小則相減,上1
rt3: bs 0x20,0 ;上1
call sub_2b ;調2字節減法子程
ret
sub_2b:
mov a,0x31 ;高字節相減
sub 0x23,a
mov a,0x30 ;低字節相減


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>