<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 一種匯編查表程序

          一種匯編查表程序

          作者: 時間:2012-10-12 來源:網(wǎng)絡 收藏

          作者在開發(fā)‘帶拼讀的儀’時,遇到了這樣一個要求:根據(jù)3個(聲母的鍵值、韻母的鍵值、四聲鍵的鍵值)確定一個函數(shù)值(根據(jù)這三者拼出的讀音的代號),其中的值,函數(shù)的值都是已知的,但它們之間沒有明確的對應關(guān)系,另外要求判斷是否有對應的函數(shù)值,一般常規(guī)的查表法不能使用,經(jīng)過一番研究,作者自編了一個查表程序,解決了這個問題。

          一、查表要求:

          輸入變量:1)聲母的鍵值,2)韻母的鍵值,3)四聲鍵的鍵值(在47-50間變化)。

          輸出結(jié)果:對應的讀音的代號。

          查表要求:根據(jù)輸入判斷是否有對應值,如有,則輸出對應代號,如沒有,則給出沒有找到的標記。

          二、查表程序:

          ;***************************************

          ;雙拼拼讀處理

          ;入口:2EH和2DH中分別存入拼讀的聲母和韻母,2CH中存放拼讀的四聲鍵值,

          ;出口:找到則返回聲音信號的序號值50H中,且06H置1

          ;如未找到,則06H清'0'

          ;R6作拼讀總數(shù)計數(shù)器

          ;************************************************

          J_XH2:

          PUSH PSW

          MOV R6,#0

          MOV DPTR,#J_X2

          J2_LP0:

          INC R6

          CLR A

          MOVC A,@A+DPTR

          CJNE A,2EH,J2_NOTEQH ;取聲母,比較,不等則轉(zhuǎn)

          INC DPTR

          MOVC A,@A+DPTR

          CJNE A,2DH,J2_NOTEQL ;若聲母等,則韻母,不等轉(zhuǎn)

          MOV A,2CH

          SUBB A,#47 ;減去47(基數(shù),使鍵值從'0'開始,0到3)

          MOV R7,A ;R7作四聲鍵值記數(shù)器

          J2_LOOP:

          CJNE R7,#0,J2_LOOP1 ;R7中的值不為0,則轉(zhuǎn)去循環(huán)

          AJMP J2_DONE

          J2_LOOP1:

          INC DPTR

          DEC R7

          AJMP J2_LOOP

          J2_DONE: ;取數(shù)

          INC DPTR

          CLR A


          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();