Professional Documents
Culture Documents
Cuadratica ARM
Cuadratica ARM
data
.balign 4
.balign 4
.balign 4
number0: .word 0
.balign 4
number1: .word 0
.balign 4
number2: .word 0
.balign 4
number3: .word 0
.balign 4
number4: .word 0
.balign 4
return: .word 0
.balign 4
return2: .word 0
.balign 4
return3: .word 0
.balign 4
return4: .word 0
.balign 4
return5: .word 0
.text
.global main
.func main
main:
BL scanf
BL cuadratica
LDR LR, =return
BX LR
cuadratica:
CMP R9, #0
BEQ end
BL scanf
BL scanf
BL scanf
LDR R2, =number1
MOV R11,#100
BL division
MOV R11,#100
BL division
MOV R7, #4
MUL R8, R6, R7 @ R8 = 4*A*C
CMP R8, R5
BGT invalido
BL raiz
MOV R4,R12
MOV R7, #2
BL division
@bl imprimir
MOV R7, #2
BL division
CMP R8,R5
blNE imprimir
MOV R8, R5
BL imprimir
b cuadratica
raiz:
MOV R12, #0
B raizloop
raizloop:
CMP R6,R7
BGT raizloop
BX lr
division:
MOV R6, #1
MOV R12, #0
BGT posdividendo
BGT posdivisor
b divisionloop
posdividendo:
MUL R10,R7,R10
CMP R12, R10
BGT posdividendo
BGT posdivisor
b divisionloop
posdivisor:
b divisionloop
divisionloop:
BGT enddivision
b divisionloop
enddivision:
BX lr
invalido:
BL imprimir
b cuadratica
imprimir:
BL printf
BX lr
end:
BX lr
.global scanf
.global printf
.end
//cuadrática en arm