轉貼: HOLI 大整理的 FPPA 指令集

from:http://220.134.96.227/bbs/viewtopic.php?t=6

之前小弟我有想過整理好一個指令集對照表,但是懶惰成性。剛發現了這個 HOLI 大 貼在 Paduak 論壇上的,就轉貼在這了。

下面內容是HOLI大的發言


最近花了一點時間寫成了PADAUK80C6x 系列的
====結構化矩陣式的高階組語程式設計’方式====
的組譯器和反組譯器其中指令表歸納如下:
#表示數值. 相信指令一眼即可看完理解.

代碼:

 // Data transfer instruction (16)
(   1  )      8C8#:   A=#
(   2  )      7C9R:   R=A
(   3  )      7C9R:   A=R
(   4  )      9C7P:   A=P
(   5  )      9C7P:   P=A
(   6  )    7C8R1C:   PUSHW
(   7  )     13C3#:   PUSHPC
(   8  )    7C8R1C:   POPW
(   9  )     13C3#:   POPPC
(  10  )    7C8R1C:   A=(R)H
(  11  )    7C8R1C:   A=(R)L
(  12  )    7C8R1C:   R=T16
(  13  )    7C8R1C:   T16=R
(  14  )    7C8R1C:   A=(R)
(  15  )    7C8R1C:   (R)=A
(  16  )      7C9R:   A<->R
// Arithmetic operation instruction (20)
(   1  )      8C8#:   A+#
(   2  )      7C9R:   A+R
(   3  )      7C9R:   R+A
(   4  )      7C9R:   A+R+C
(   5  )      7C9R:   R+A+C
(   6  )       16C:   A+C
(   7  )      7C9R:   R+C
(   8  )      7C9R:  -A+R
(   9  )      7C9R:  -R+A
(  10  )      8C8#:   A-#
(  11  )      7C9R:   A-R
(  12  )      7C9R:   R-A
(  13  )      7C9R:   A-R-C
(  14  )      7C9R:   R-A-C
(  15  )       16C:   A-C
(  16  )      7C9R:   R-C
(  17  )      7C9R:   R+
(  18  )      7C9R:   R-
(  19  )      7C9R:   R=0
(  20  )       16C:   MUL
// Shift operation instruction  //  ( 10 )
(   1  )       16C:   SR
(   2  )       16C:   SRC
(   3  )      7C9R:   SRR
(   4  )      7C9R:   SRCR
(   5  )       16C:   SL
(   6  )       16C:   SLC
(   7  )      7C9R:   SLR
(   8  )      7C9R:   SLCR
(   9  )       16C:   SWAP.A
(  10  )      7C9R:   SWAP.R
// Logic operation instruction  //  ( 16 )
(   1  )      8C8#:   An#
(   2  )      7C9R:   AnR
(   3  )      7C9R:   RnA
(   4  )      8C8#:   Ao#
(   5  )      7C9R:   AoR
(   6  )      7C9R:   RoA
(   7  )      8C8#:   Ax#
(   8  )      7C9R:   AxR
(   9  )      7C9R:   RxA
(  10  )       16C:   A/
(  11  )      7C9R:   R/
(  12  )       16C:  -A
(  13  )      7C9R:  -R
(  14  )      8C8#:   A:#
(  15  )      7C9R:   A;R
(  16  )      7C9R:   R:A
// Bit operation instruction //  ( 6 )
(   1  )    6C3b7P:   Pb=0
(   2  )    6C3b7P:   Pb=1
(   3  )    6C3b7P:   Pb/
(   4  )    4C3b9R:   Rb=0
(   5  )    4C3b9R:   Rb=1
(   6  )    6C3b7P:   C<->Pb
// Conditional operational instructions //  ( 13 )
(   1  )      8C8#:   A=#?
(   2  )      7C9R:   A=R?
(   3  )      7C9R:   R=A?
(   4  )    6C3b7P:   Pb=0?
(   5  )    6C3b7P:   Pb=1?
(   6  )    4C3b9R:   Rb=0?
(   7  )    4C3b9R:   Rb=1?
(   8  )       16C:   A+1=0?
(   9  )       16C:   A-1=0?
(   0  )      7C9R:   R+1=0?
(   1  )      7C9R:   R-1=0?
(   2  )    6C3b7P:   WAIT.Pb=0
(   3  )    6C3b7P:   WAIT.Pb=1
// System control instructions //  ( 18 )
(   1  )     4C12A:   CALL
(   2  )     4C12A:   JMP
(   3  )    7C8R1C:   ICALL
(   4  )    7C8R1C:   IJMP
(   5  )      8C8#:   DELAY.#
(   6  )       16C:   DELAY.A
(   7  )      7C9R:   DELAY:R
(   8  )      8C8#:   RET.A=#
(   9  )       16C:   RET
(  10  )       16C:   RETI
(  11  )       16C:   NOP
(  12  )       16C:   PC+A
(  13  )       16C:   EI
(  14  )       16C:   DI
(  15  )       16C:   STOPSYS
(  16  )       16C:   RESET
(  17  )       16C:   WDRESET
(  18  )     13C3#:   PMODE=#

範例:

代碼:

               T: ASC>0~F
( 0248  40D0 )                             `  A+0D0
( 0249  2480 )           IF’C=1
( 024B  40F6 )                             `  A+0F6
( 024C  2080 )               IF’C=0
( 024E  400A )                             `  A+0A
( 024F  00CA )                                RET
( FFFF       )               ENDIF’
( 0250  50DF )                             `  An0DF
( 0251  40F9 )                             `  A+0F9
( 0252  2480 )               IF’C=1
( 0254  40FA )                             `  A+0FA
( 0255  2080 )                  IF’C=0
( 0257  500F )                             `  An0F
( 0258  00CA )                                RET
( FFFF       )                  ENDIF’
( FFFF       )               ENDIF’
( FFFF       )            ENDIF’
( 0259  F242 )                                NOT.0~F
( 025A  00CA )                                RET
—————————————————–
               T: GET.N
( 025B  F21A )                                RX
( 025C  F248 )                                ASC>0~F
( 025D  00CA )                                RET
—————————————————–
               T: GET2N
( 025E  F25B )                                GET.N
( 025F  7C25 )                             `  R25=A
( 0260  DC25 )                             `  SWAP.R25
( 0261  F25B )                                GET.N                           
( 0262  7625 )                             `  AoR25
( 0263  00CA )                                RET

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: