回覆列表
  • 1 # 使用者6714470155983

    用散轉表

    直接用LJMP指令組成轉移表.由於LJMP是3位元組的指令,在組成指令轉移表時,當執行JMP @A+DPTR指令時,可能出現DPTR低8位向高8位的進位,用加法指令對DPTR直接修改來實現.

    程式如下:

    ORG 0000H

    PJ2: MOV DPTR,#TAB2

    CLR C

    MOV R5,#0

    MOV A,R6

    RLC A ;R6*2

    JNC AD1

    INC R5 ;有進位,高8位加1

    AD1: ADD A,R6 ;R6*3

    JNC AD2

    INC R5 ;有進位,高8位加1

    AD2: MOV A,R5

    ADD A,DPH ;DPTR高8位調整

    MOV A,R6

    JMP @A+DPTR ;得散轉地址

    TAB2: LJMB LOP0

    LJMP LOP1

    ……

    LJMP LOPn

    END

    用AJMP組成的散轉表為二位元組一項,而用LJMP組成的散轉表則為三位元組一項,根據R6中的內容或乘2,或乘3得每一處理程式的入口地址表指標.

    應該不難理解吧,耐心點看

  • 中秋節和大豐收的關聯?
  • 想配臺五千以內的電腦主機,主要用來設計塑膠模具,該怎麼配?