⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 422facto

📁 大型risc处理器设计源代码,这是书中的代码 基于流水线的risc cpu设计
💻
字号:
         // 000 ; Factorial without interlocks
         // 000 ; ============================
         // 000 ; 
         // 000 ; f(n) = n*f(n-1)
         // 000 ; f(n) = R7; n = R6
         // 000 ; SP = R31
60F80064 // 000          MOV      R31, stack          ; R31 as SP
0E380018 // 004          LDu      R07, R00, data      ; R7 := <data>
80000006 // 008          CALL     calcfact            ; factorial
60FFC008 // 00c          INC      R31, 8              ; update SP
2E380017 // 010          ST       R07, R00, resu      ; store result
FF000000 // 014          HALT                         ; done
         // 018          ;-----------------------------
EA084000 // 018 calcfact:LRFS     R01, RPC            ; save RPC
6A39C001 // 01c          DEC.f    R07                 ; decrement R7
2E3FFFFF // 020          ST       R07, R31, -4        ; R7 on stack
FC40000C // 024          Beq      one                 ; R7=0?
2E0FFFFE // 028          ST       R01, R31, -8        ; RPC on stack
80000006 // 02c          CALL     calcfact            ; recursion
60FFC008 // 030          INC      R31, 8              ; update SP
         // 034
0E37FFFF // 034          LDu      R06, R31, -4        ; load present factor
0E0FFFFE // 038          LDu      R01, R31, -8        ; load RPC
61280007 // 03c          MOV      R05, R07            ; R5 := factorial(R7)
6A318001 // 040 mult:    DEC.f    R06                 ; decrement count(R6)
FC07FFFF // 044          Bne      mult                ; done?
6139C005 // 048          ADD      R07, R07, R05       ; factorial(R7) := R7+R5
EB000001 // 04c return:  RET      R01                 ; update SP
68FFC008 // 050          DEC      R31, 8              ;   and return
         // 054
FC7FFFFE // 054 one:     Bt       return              ; return
60380001 // 058          MOV      R07, 1              ; factorial(R7) := 1
         // 05c          ;-----------------------------
XXXXXXXX // 05c resu:    ds.w     1
00000003 // 060 data:    dc.w     $3
XXXXXXXX // 064 stack:   ds.w     1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -