这是一个函数,用C语言该如何表达?请高手指点,谢谢!
void putpixel2(uint32_t x, uint32_t y, uint16_t Color)
putpixe ; CODE XREF: showpace+1Ep
; putpixel2win+B6p ...
x = R0 ; uint32_t
y = R1 ; uint32_t
Color = R2 ; uint16_t
PUSH {R4,LR}
MOVS R3, #0x20
LDR R4, =0x40010C14
STR R3, [R4] ; GPIOB_5 = 0
LDR R3, =0x40011000
STR.W y, [R3,#0x80C] ; 把 y 的数值写入 GPIOE_ODR
LDR R3, =0x40011800
ADDS R3, #0xC
STR y, [R3] ; 把y的数值写入 GPIOE_ODR
ASRS R3, R3, #0x15
LDR R4, =0x40010000
STR.W R3, [R4,#0xC14] ; GPIOB_9 = 0
LDR R3, =0x40011800
ADDS R3, #0xC
STR y, [R3] ; 把y写入GPIOE_ODR
ASRS R3, R3, #0x15
STR.W R3, [R4,#0xC10] ; GPIOB_9 = 1
LDR R3, =0x40011800
ADDS R3, #0xC
STR y, [R3] ; 把y写入GPIOE_ODR
LSRS x, x, #1 ; x 右移 1位
STR x, [R3] ; X 写入 GPIOE_ODR
MOVS R3, #0x80
LDR R4, =0x40011000
STR.W R3, [R4,#0x414] ; GPIOD_7 = 0
LDR R3, =0x40011800
ADDS R3, #0xC
STR x, [R3] ; X 写入 GPIOE_ODR
MOVS R3, #0x80
STR.W R3, [R4,#0x410] ; GPIOD_7 = 1
LDR R3, =0x40011800
ADDS R3, #0xC
STR x, [R3] ; X 写入 GPIOE_ODR
MOVS R3, #8
STR.W R3, [R4,#0x414] ; GPIOD_3 = 0
MOV R3, R4
STR.W Color, [R3,#0x80C] ; color 写入 GPIOE_ODR
LDR R3, =0x40011800
ADDS R3, #0xC
STR Color, [R3] ; COLOR 写入 GPIOE_ODR
MOVS R3, #0x10
STR.W R3, [R4,#0x414] ; GPIOD_4 = 0
LDR R3, =0x40011800
ADDS R3, #0xC
STR Color, [R3] ; COLOR 写入 GPIOE_ODR
MOVS R3, #0x10
STR.W R3, [R4,#0x410] ; GPIOD_4 = 1
LDR R3, =0x40011800
ADDS R3, #0xC
STR Color, [R3] ; COLOR 写入 GPIOE_ODR
MOVS R3, #8
STR.W R3, [R4,#0x410] ; GPIOD_3 = 1
LDR R3, =0x40011800
ADDS R3, #0xC
STR Color, [R3] ; COLLOR 写入 GPIOE_ODR
POP {R4,PC}
|