nios_zerorange.s
来自「ALTERA的NIOS处理器!文件直接可以打开直接选择器件重新编译!」· S 代码 · 共 39 行
S
39 行
.include "nios_macros.s"
.text
;----------------------------------------
; Name: nr_zerorange
; Description: Clear a range of memory
; Input: %o0 = first address, %o1 = byte count
; Output: none
; Side Effects: %g0, %g1, & %g2
; CWP Depth: 0
;
.global nr_zerorange
nr_zerorange:
IFRz %o1 ; byte count zero?
JMP %o7 ; just exit
MOV %g2,%o0 ; %g2 = first byte address
MOV %g1,%g2
ADD %g1,%o1 ; %g1 = last address + 1
SUBI %g1,1 ; %g1 = last byte address
MOVI %r0,0 ; %r0 (%g0) is always ST8d's source.
;
; Byte by byte, for simplicity.
; Not as fast, though.
;
zeroRangeLoop:
ST8d [%g2],%r0
CMP %g2,%g1
IFS cc_ne
BR zeroRangeLoop
ADDI %g2,1 ; (delay slot)
JMP %o7
NOP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?