📄 io.s
字号:
#include <linux/linkage.h>#include <asm/arch/hardware.h>ENTRY(insl) add r0, r0, #PCIO_BASE ands ip, r1, #3 bne 2f1: ldr r3, [r0] str r3, [r1], #4 subs r2, r2, #1 bne 1b mov pc, lr2: cmp ip, #2 ldr ip, [r0] blt 3f bgt 4f strh ip, [r1], #2 mov ip, ip, lsr #161: subs r2, r2, #1 ldrne r3, [r0] orrne ip, ip, r3, lsl #16 strne ip, [r1], #4 movne ip, r3, lsr #16 bne 1b strh ip, [r1], #2 mov pc, lr3: strb ip, [r1], #1 mov ip, ip, lsr #8 strh ip, [r1], #2 mov ip, ip, lsr #161: subs r2, r2, #1 ldrne r3, [r0] orrne ip, ip, r3, lsl #8 strne ip, [r1], #4 movne ip, r3, lsr #24 bne 1b strb ip, [r1], #1 mov pc, lr4: strb ip, [r1], #1 mov ip, ip, lsr #81: subs r2, r2, #1 ldrne r3, [r0] orrne ip, ip, r3, lsl #24 strne ip, [r1], #4 movne ip, r3, lsr #8 bne 1b strb ip, [r1], #1 mov ip, ip, lsr #8 strh ip, [r1], #2 mov pc, lrENTRY(outsl) add r0, r0, #PCIO_BASE ands ip, r1, #3 bne 2f1: ldr r3, [r1], #4 str r3, [r0] subs r2, r2, #1 bne 1b mov pc, lr2: bic r1, r1, #3 cmp ip, #2 ldr ip, [r1], #4 mov ip, ip, lsr #16 blt 3f bgt 4f1: ldr r3, [r1], #4 orr ip, ip, r3, lsl #16 str ip, [r0] mov ip, r3, lsr #16 subs r2, r2, #1 bne 1b mov pc, lr3: ldr r3, [r1], #4 orr ip, ip, r3, lsl #8 str ip, [r0] mov ip, r3, lsr #24 subs r2, r2, #1 bne 3b mov pc, lr4: ldr r3, [r1], #4 orr ip, ip, r3, lsl #24 str ip, [r0] mov ip, r3, lsr #8 subs r2, r2, #1 bne 4b mov pc, lrENTRY(outsw) add r0, r0, #PCIO_BASE1: subs r2, r2, #1 ldrgeh r3, [r1], #2 strgeh r3, [r0] bgt 1b mov pc, lrENTRY(insw) add r0, r0, #PCIO_BASE1: teq r2, #0 ldrneh r3, [r0] strneh r3, [r1], #2 subne r2, r2, #1 bne 1b mov pc, lr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -