匯編語言常用子程序_第1頁
匯編語言常用子程序_第2頁
匯編語言常用子程序_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、二、匯編語言常用子程序1、拆字與拼字:【例1】將GR0中的四位BCD碼從高到低依次存放到GR2所指的四個內存單元中。STARTLEAGR3,4;循環(huán)計數器L1STGR0,REG;保護其余幾位BCD碼ANDGR0,C000F;屏蔽高3位,留下最低1位BCD碼STGR0,3,GR2;將此位BCD碼存放到GR2所指第四個內存單元LDGR0,REG;恢復其余幾位BCD碼SRLGR0,4;將已處理過的此位BCD碼移出LEAGR2,-1,GR2;地址指針減1LEAGR3,-1,GR3;循環(huán)計數器減1JNZL1;未處理完,繼續(xù)RETC000FDC#000F;十六進制常數,屏蔽高3位BCD碼用REGDS1;暫

2、存單元END【例2】將存放在GR2所指的四個內存單元中的四位BCD碼依從高到低順序壓縮到GR0中。STARTLEAGR0,0;GR0 清 0LEAGR3,4;循環(huán)計數器L1SLLGR0,4;將已處理過的BCD碼移到高位LDGR1,0,GR2;GR1用作臨時工作寄存器ANDGR1,C000F;屏蔽高12位STGR1,0,GR2;對內存單元中的BCD碼預處理ADDGR0,0,GR2;將已處理過的此位 BCD 碼加到 GR0 低位LEAGR2.1,GR2;地址指針指向下一位BCD碼LEAGR3,-1,GR3;循環(huán)計數器減1JNZL1;未處理完,繼續(xù)RETC000FDC#000F;十六進制常數,屏蔽高

3、12位二進制數END2、數字與ASCII碼之間的相互轉換:十進制數字09的ASCII碼是30H39H,所以只要將十進制數(BCD碼)加30H就是對應的 ASCII 碼。十六進制數轉換成ASCII碼可分成兩段,09的ASCII碼是30H39H,即加30H ; AF的 ASCII 碼是 41H45H,即加 37 H。【例1】將GR0中的四位BCD碼化成ASCII碼從高到低依次存放到字符串變量STR中。STARTLEAGR2,3;相對于STR首址的地址指針LEAGR3,4;循環(huán)計數器L1STGR0,REG;保護其余幾位BCD碼ANDGR0,C000F;屏蔽高3位,留下最低1位BCD碼ADDGR0,C

4、30;轉換成ASCII碼STGR0,STR,GR2;將ASCII碼存放到GR2所指第四個內存單元LDGR0,REG;恢復其余幾位BCD碼SRLGR0,4;將已處理過的此位BCD碼移出LEAGR2,-1,GR2;地址指針減1LEAGR3,-1,GR3;循環(huán)計數器減1JNZL1;未處理完,繼續(xù)RETC000FDC#000F;十六進制常數,屏蔽高3位BCD碼用C30DC#30;十六進制常數30STRDS4REGDS1;暫存單元END【例2】將GR0中的16位二進制數化成四位十六進制數ASCII碼從高到低依次存放到字符串變量STR 中。STARTLEAGR2,3;相對于 STR 首址的地址指針LEAG

5、R3,4;循環(huán)計數器L1STGR0,REG;保護其余幾位二進制數ANDGR0,C000F;屏蔽高12位,留下最低4位二進制數CPLGR0,C10; 10 否?JMIL2; 10跳過加7,只加30HADDGR0,C7; 10加30H前先加上7L2ADDGR0,C30;加上30HSTGR0,STR,GR2;將ASCII碼存放到GR2所指第四個內存單元LDGR0,REG;恢復其余幾位二進制數SRLGR0,4;將已處理過的此4位二進制數移出LEAGR2,-1,GR2;地址指針減 1LEAGR3,-1,GR3;循環(huán)計數器減1JNZL1;未處理完,繼續(xù)RETC000FDC#000F;十六進制常數,屏蔽屏蔽

6、高 12 位二進制數C30DC#30;十六進制常數30C10DC10;十進制常數 10C7DC7;常數7STRDS4REGDS1;暫存單元END【例3】將字符串STR中的四位十六進制數的ASCII碼化成16位二進制數放到GR0中。STARTLEAGR0,0;GR0 清 0LEAGR2,0;相對于STR首址的地址指針LEAGR3,4;循環(huán)計數器L1SLLGR0,4;將已處理過的十六進制數移到高位LDGR1,STR,GR2;GR1用作臨時工作寄存器ANDGR1,C00FF;屏蔽高8位SUBGR1,C30;減去30HCPLGR1,C0A; 10 否?JMIL2; 10,完成轉換SUBGR1,C7; 10再減去7L2STGR1,STR,GR2;將STR中的ASCII碼轉換成十六進制數ADDGR0,STR,GR2;將此位十六進制數加到GR0低位LEAGR2.1,GR2;地址指針指向下一位ASCII碼LEAGR3,-1,GR3;循環(huán)計數器減1JNZL1;未處理完,繼續(xù)RETC00FFDC#00FF;十六進制常數,屏蔽高8位用C30DC#30;十六進制常數30C0ADC#0A;十六進制常數0AC7DC7;常數7STRDS4END3、利用加減法及移位指令做乘法:1)左

溫馨提示

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

最新文檔

評論

0/150

提交評論