ec_arm_linux.s

来自「分别在x86」· S 代码 · 共 54 行

S
54
字号
.global	cq_ntohl
.global cq_ntohl_array
.global	cq_ntohs
.global cq_ntohs_array

cq_ntohl:

	stmdb sp!,{r1}

	eor r1, r0, r0, ROR #16
	bic r1, r1, #0xFF0000
	mov r0, r0, ror #8
	eor r0, r0, r1, lsr #8

	ldmia sp!,{r1}
	mov pc, lr	

cq_ntohl_array:
	stmdb sp!, {r0-r3}
next:
	ldr r2, [r0]
	eor r3, r2, r2, ror #16
	bic r3, r3, #0xff0000
	mov r2, r2, ror #8
	eor r2, r2, r3, lsr #8
	str r2, [r0], #4
	subs r1, r1, #1
	bne next

	ldmia sp!,{r0-r3}
	mov pc, lr
	
cq_ntohs:   
	stmdb sp!,{r1}

	mov r1, r0, lsl #8
	orr r0, r1, r0, lsr #8

	ldmia sp!,{r1}
	mov pc, lr

cq_ntohs_array   
	stmdb sp!,{r0-r3}

next2
	ldrh r2, [r0]
	mov r3, r2, lsl #8
	orr r2, r3, r2, lsr #8
	strh r2, [r0], #2
	subs    r1, r1, #1
	bne next2

	ldmia sp!,{r0-r3}
	mov pc, lr

⌨️ 快捷键说明

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