新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種匯編查表程序

        一種匯編查表程序

        作者: 時間:2012-10-12 來源:網絡 收藏

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

        一、查表要求:

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

        輸出結果:對應的讀音的代號。

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

        二、查表程序:

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

        ;雙拼拼讀處理

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

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

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

        ;R6作拼讀總數計數器

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

        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 ;取聲母,比較,不等則轉

        INC DPTR

        MOVC A,@A+DPTR

        CJNE A,2DH,J2_NOTEQL ;若聲母等,則韻母,不等轉

        MOV A,2CH

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

        MOV R7,A ;R7作四聲鍵值記數器

        J2_LOOP:

        CJNE R7,#0,J2_LOOP1 ;R7中的值不為0,則轉去循環

        AJMP J2_DONE

        J2_LOOP1:

        INC DPTR

        DEC R7

        AJMP J2_LOOP

        J2_DONE: ;取數

        INC DPTR

        CLR A


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 怀化市| 娄底市| 舞钢市| 同仁县| 新源县| 宜都市| 甘南县| 会泽县| 泗洪县| 天等县| 东丽区| 任丘市| 运城市| 莒南县| 津市市| 乐平市| 镶黄旗| 泽普县| 瓮安县| 武宣县| 绍兴市| 克什克腾旗| 明溪县| 西乡县| 日照市| 寻甸| 株洲市| 娱乐| 巴东县| 金昌市| 安国市| 兴宁市| 子洲县| 吉林省| 永春县| 邵东县| 仁寿县| 西充县| 老河口市| 兴仁县| 澄江县|