📄 uart_txhex16.s
字号:
.include "nios.s"
.text
;----------------------------------------
; Name: nr_uart_txhex16
; Description: Print 16-bit value in hexadecimal
; Input: %o0 = value to be printed
; Output: none
; Side Effects: %g0 & %g1 altered, %o1 used for uart base
; CWP Depth: 1
;
.global nr_uart_txhex16
nr_uart_txhex16:
SAVE %sp,-16
MOVI %l0,12 ; initial shift: 4 hex digits on d16
txHex16Loop:
MOV %o0,%i0
LSR %o0,%l0
ANDIP %o0,0x000f ; mask low hex digit
CMPI %o0,10 ; convert to ascii 0-9a-f
SKPS cc_lt
ADDI %o0,'A'-'0'-10
PFX %hi('0')
ADDI %o0,%lo('0')
_BSR nr_uart_txchar
MOVI %o1,0 ; (branch delay slot) use "default" uart
SUBI %l0,4 ; shift a little less, next loop
SKPS cc_n
BR txHex16Loop
NOP
RESTRET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -