一二進制數轉換為ASC碼_第1頁
一二進制數轉換為ASC碼_第2頁
一二進制數轉換為ASC碼_第3頁
一二進制數轉換為ASC碼_第4頁
一二進制數轉換為ASC碼_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一二進制數轉換為ASC碼將一個字節(jié)的二進制數轉換為兩位16進制數的ASC碼main:mova,0x9f;二進制數為0x9f mov0x30,a;二進制數存入0x30mova,0x02mov0x10,a;0x10中存放轉換次數mova,0x31mov0x04,a;0x04中為轉換后數據存放地址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;存儲地址加1djz0x10;循環(huán)次數減1,為0則返回jmpB1;不為0繼續(xù)轉換self:jmpselfeop二多字節(jié)二進制加法0X20,0X21中的二進制無符號數與0X22,0X23中的二進制無符號數相加,結果放在0X24,0X25,0X26中,低地址中放低字節(jié)數據。Main:mov a,0x78;賦值mov0x20,amova,0xc6mov0x21,amova,0x86mov0x22,amova,0x9emov0x23,amova,0x0;0x26單元清0mov0x26,amova,0

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論