一二進(jìn)制數(shù)轉(zhuǎn)換為ASC碼_第1頁(yè)
一二進(jìn)制數(shù)轉(zhuǎn)換為ASC碼_第2頁(yè)
一二進(jìn)制數(shù)轉(zhuǎn)換為ASC碼_第3頁(yè)
一二進(jìn)制數(shù)轉(zhuǎn)換為ASC碼_第4頁(yè)
一二進(jìn)制數(shù)轉(zhuǎn)換為ASC碼_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一二進(jìn)制數(shù)轉(zhuǎn)換為ASC碼將一個(gè)字節(jié)的二進(jìn)制數(shù)轉(zhuǎn)換為兩位16進(jìn)制數(shù)的ASC碼main:mova,0x9f;二進(jìn)制數(shù)為0x9f mov0x30,a;二進(jìn)制數(shù)存入0x30mova,0x02mov0x10,a;0x10中存放轉(zhuǎn)換次數(shù)mova,0x31mov0x04,a;0x04中為轉(zhuǎn)換后數(shù)據(jù)存放地址mova,0x30B1:anda,0x0f;取a低4位mov0x00,asuba,0x09;低4位大于9跳往B2jbs0x03,0jmpB2mova,0x00;低4位不大于9則加0x30adda,0x30mov0x00,a;將ASC碼存入0X04所指單元jmpB3B2:mova,0x00;大于9則加0X37

2、adda,0x37mov0x00,aB3:swapa0x30;將0X30高4位換入A低4位inc0x04;存儲(chǔ)地址加1djz0x10;循環(huán)次數(shù)減1,為0則返回jmpB1;不為0繼續(xù)轉(zhuǎn)換self:jmpselfeop二多字節(jié)二進(jìn)制加法0X20,0X21中的二進(jìn)制無(wú)符號(hào)數(shù)與0X22,0X23中的二進(jìn)制無(wú)符號(hào)數(shù)相加,結(jié)果放在0X24,0X25,0X26中,低地址中放低字節(jié)數(shù)據(jù)。Main:mov a,0x78;賦值mov0x20,amova,0xc6mov0x21,amova,0x86mov0x22,amova,0x9emov0x23,amova,0x0;0x26單元清0mov0x26,amova,0

3、x21adda,0x23mov0x25,a;高字節(jié)相加,結(jié)果送0x25jbc0x03,0inc0x26; 有進(jìn)位則0x26加1mova,0x20adda,0x22mov0x24,a;低字節(jié)相加,結(jié)果送0x24jbs0x03,0jmp self;無(wú)進(jìn)位跳selfinc0x25;有進(jìn)位0x25加1jbc0x03,0inc0x26; 有進(jìn)位0x26加1self:jmpselfeop三多字節(jié)二進(jìn)制減法0x20,0x21中的二進(jìn)制無(wú)符號(hào)數(shù)減0x22,0x23中的二進(jìn)制無(wú)符號(hào)數(shù), 低地址中放低字節(jié)數(shù)據(jù)。假設(shè)被減數(shù)大于減數(shù)。注意:(1)sub指令減出結(jié)果為正時(shí),c標(biāo)志置1。 (2)sub指令減出結(jié)果為0時(shí),

4、c標(biāo)志也置1。即,sub指令執(zhí)行后,c標(biāo)志清0表示結(jié)果為負(fù)。main:mova,0x67;賦值mov0x20,amova,0xffmov0x21,amova,0xe8mov0x22,amova,0x44mov0x23,a; 高字節(jié)相減suba,0x21mov0x25,a;結(jié)果存0x25mova,0x22;低字節(jié)相減suba,0x20mov0x24,ajbs0x03,0dec0x25;有借位則0x25減1self:jmpselfeop四二進(jìn)制乘法運(yùn)算EM78單片機(jī)沒(méi)有乘法指令,所以乘法運(yùn)算需要轉(zhuǎn)化為加法運(yùn)算。0X20單元數(shù)據(jù)乘以0X21單元數(shù)據(jù),結(jié)果放在0X22,0X23中。main:mova,

5、0x0;0x22,0x23單元清0mov0x22,amov0x23,amova,0x3f;賦值mov0x20,amova,0x22mov0x21,amul1:mova,0x20;0x20與0x22內(nèi)容相加add0x22,ajbc0x03,0inc0x23;有進(jìn)位0x23加1djz0x21;0x21中次數(shù)減到0則結(jié)束jmpmul1;沒(méi)減到0則繼續(xù)self:jmpselfeop五二進(jìn)制除法運(yùn)算多字節(jié)二進(jìn)制除法被除數(shù)為3個(gè)字節(jié),在0x20、0x21、0x22單元中,0x22.7為最高位,0x20.0為最低位。除數(shù)為2個(gè)字節(jié),在0x30、0x31中。算法:EM78單片機(jī)沒(méi)有除法指令,而且本例中除法為多

6、字節(jié)除法,可采用如下算法。將被除數(shù)擴(kuò)充一個(gè)字節(jié)0X23,0X23清0。被除數(shù)左移1位,0X23、0X22中數(shù)據(jù)減去0X31、0X30中數(shù)據(jù),夠減則減且0X20.0置1,減出結(jié)果存入0X23、0X22;不夠減則0X23、0X22保持不變,0X20.0清0。然后被除數(shù)再左移1位,重復(fù)上述過(guò)程。共循環(huán)16次,最后0X23、0X22中得相減余數(shù),0X21、0X20中得商。注意,若被除數(shù)左移后C標(biāo)志為1,則不比較0X23、0X22與0X31、0X30數(shù)據(jù)大小關(guān)系而直接相減。main:mova,0x55;被除數(shù)賦值mov0x20,amov0x21,amov0x22,amova,0x0;被除數(shù)擴(kuò)充1字節(jié)并清

7、0mov0x23,amova,0x12;除數(shù)賦值mov0x30,amov0x31,amova,0x10;循環(huán)次數(shù)為16mov0x32,aagain:callrt_sub;調(diào)移位除法子程djz0x32;16次循環(huán)完成則結(jié)束jmpagain;未完成則繼續(xù)self:jmpselfrt_sub:bc0x03,0;c標(biāo)志清0rlc0x20;被除數(shù)左移1位rlc0x21rlc0x22rlc0x23jbc0x03,0jmprt3;c標(biāo)志為1則直接相減mova,0x23;c標(biāo)志為0則先比較大小mov0x25,amova,0x22mov0x24,amova,0x31;先比較高位sub0x25,ajbc0x03,

8、2jmprt1;高位相等跳rt1比較低位jmprt2;高位不等跳rt2rt1:mova,0x30;比較低位sub0x24,ajbc0x03,2jmprt3;低位也相等則跳rt3,相減,上1rt2:jbs0x03,0ret;減數(shù)大則返回,減數(shù)小則相減,上1rt3:bs0x20,0;上1callsub_2b;調(diào)2字節(jié)減法子程retsub_2b:mova,0x31;高字節(jié)相減sub0x23,amova,0x30;低字節(jié)相減sub 0x22,ajbc0x03,2ret;低字節(jié)相等,無(wú)借位,返回jbc0x03,0ret;無(wú)借位,返回dec0x23;低字節(jié)相減有借位,高字節(jié)結(jié)果減1reteop六BCD數(shù)轉(zhuǎn)

9、換為二進(jìn)制數(shù)兩字節(jié)壓縮BCD碼轉(zhuǎn)換為兩字節(jié)二進(jìn)制數(shù)。算法如下:BCD碼abcd=1000a+100b+10c+d=101010a+b+c+d,將各位BCD碼分離出之后,即可根據(jù)此式轉(zhuǎn)換為二進(jìn)制數(shù)。涉及到乘法運(yùn)算和多字節(jié)加法運(yùn)算。0X20,0X21中為BCD碼,0X21高4位為最高位。轉(zhuǎn)換結(jié)果放在0X30,0X31中。main:mova,0x79mov0x20,amova,0x54mov0x21,a;賦值mova,0x20anda,0x0fmov0x22,aswapa0x20anda,0x0fmov0x23,amova,0x21anda,0x0fmov0x24,aswapa0x21anda,0x

10、0fmov0x25,a;BCD碼展開(kāi)后存于0X22,0X23,0X24,0X25mova,0x25,;0X25為最高位mov0x30,amova,0x0;多字節(jié)加法高位為0mov0x31,amova,0x24mov0x32,acalla_b;調(diào)子程mova,0x23mov0x32,acalla_bmova,0x22mov0x32,acalla_bself:jmpselfa_b:mova,0x0;0X34,0X35存儲(chǔ)中間結(jié)果mov0x34,amov0x35,amova,0x0a;實(shí)現(xiàn)乘10mov0x33,aa1:mova,0x35;兩字節(jié)二進(jìn)制加法,在本例中高字節(jié)肯定無(wú)進(jìn)位adda,0x31m

11、ov0x35,amova,0x34adda,0x30mov0x34,ajbc0x03,0inc0x35djz0x33jmpa1mova,0x32add0x34,ajbc0x03,0inc0x35mova,0x34mov0x30,amova,0x35mov0x31,areteop七二進(jìn)制數(shù)轉(zhuǎn)換為BCD碼本例為單字節(jié)二進(jìn)制數(shù)(0X20)轉(zhuǎn)換為非壓縮BCD碼,存在0X25,0X24,0X23中,0X25為百位,0X23為個(gè)位。main:mova,0xa4;賦值mov0x20,amov0x21,amov0x22,amova,0x0;0x23,0x24,0x25單元清0mov0x23,amov0x24,amov0x25,amova,0x64;對(duì)100的個(gè)數(shù)計(jì)數(shù)mov0x26,amova,0x25;百位存在0x25中mov0x04,acalla0;調(diào)計(jì)數(shù)子程mova,0x0a;對(duì)10的個(gè)數(shù)計(jì)數(shù)mov0x26,adec0x04;個(gè)位存在0x24中calla0mova,0x22;除去百位,十位,余下的即個(gè)位,存入0x23mov0x23,aself:jmpselfa0:;計(jì)數(shù)子程mova,0x26sub0x22,ajbs0x03,2jmpa1inc0x00;無(wú)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論