Exemplo de solução para potenciação: mudanças entre as edições
Ir para navegação
Ir para pesquisar
imported>Fargoud Sem resumo de edição |
imported>Fargoud Sem resumo de edição |
||
| (Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
| Linha 1: | Linha 1: | ||
[[AULA 5 - Microprocessadores - Graduação | <= Voltar ]] | [[AULA 5 - Microprocessadores - Graduação | <= Voltar ]] | ||
;PROGRAMA CALCULADORA DE 4 OPERAÇÕES | Para rodar no VISUALARM: | ||
;PROGRAMA CALCULADORA DE 5 OPERAÇÕES | |||
; R4 = 1 -> R3 = R2 + R1 | |||
; R4 = 2 -> R3 = R2 - R1 | |||
; R4 = 3 -> R3 = R2 X R1 | |||
; R4 = 4 -> R3 = R2 / R1 | |||
; R4 = 5 -> R3 = R2^R1 | |||
mov r4,#5 ; OPERAÇÃO | |||
mov r2,#5 ; OPERANDO 1 | |||
mov r1,#4 ; OPERANDO 2 | |||
; Zera variáveis auxiliares | |||
mov r3,#0 | |||
mov r5,#0 | |||
mov r6,#0 | |||
mov r7,#0 | |||
; Identifica qual a operação escolhida | |||
cmp r4,#1 | |||
blt fim | |||
beq soma | |||
;****** | |||
cmp r4,#2 | |||
beq subt ; se r4=2 pula para subtração | |||
;****** | |||
cmp r4,#3 | |||
beq mult | |||
;****** | |||
cmp r4,#4 | |||
beq divisao | |||
;****** | |||
cmp r4,#5 | |||
bgt fim | |||
beq exp | |||
;****** | |||
;******; ALGORITMO DE SOMA: | |||
soma add r3,r2,r1 | |||
b fim | |||
;******; ALGORITMO DE SUBTRAÇÃO: | |||
subt sub r3,r2,r1 | |||
b fim | |||
;******; ALGORITMO DE MULTIPLICAÇÃO: | |||
mult add r3, r3, r2 | |||
sub r1, r1, #1 | |||
cmp r1, #1 | |||
bge mult | |||
cmp r4,#5 | |||
beq auxexp2 ;continua, se for exponenc. e salva o resul. parcial em R7 | |||
b fim | |||
;******; ALGORITMO DE DIVISÃO: | |||
divisao mov r4,r2 | |||
div2 subge r4,r4, r1 | |||
add r3, r3,#1 | |||
cmp r4,r1 | |||
bge div2 | |||
b fim | |||
;*******; ALGORITMO DA EXPONENCIAÇÃO: | |||
auxexp2 mov r7,r3 | |||
sub r6,r6,#1 | |||
cmp r6,#0 | |||
bgt auxexp1 | |||
mov r3,#1 | |||
b fim | |||
exp mov r5,r2 | |||
mov r7,r2 | |||
sub r6,r1,#1 | |||
cmp r6,#0 | |||
bgt auxexp1 | |||
mov r3,#1 | |||
b fim | |||
auxexp1 mov r1,r7 ;para fazer R2 x R2 e não R2 X R1 | |||
mov r3,#0 | |||
mov r7,#0 | |||
b mult | |||
fim | |||
Para rodar no ARMSIM: | |||
;PROGRAMA CALCULADORA DE 5 OPERAÇÕES | |||
; R4 = 1 -> R3 = R2 + R1 | ; R4 = 1 -> R3 = R2 + R1 | ||
; R4 = 2 -> R3 = R2 - R1 | ; R4 = 2 -> R3 = R2 - R1 | ||
Edição atual tal como às 15h42min de 7 de outubro de 2025
Para rodar no VISUALARM:
;PROGRAMA CALCULADORA DE 5 OPERAÇÕES
; R4 = 1 -> R3 = R2 + R1
; R4 = 2 -> R3 = R2 - R1
; R4 = 3 -> R3 = R2 X R1
; R4 = 4 -> R3 = R2 / R1
; R4 = 5 -> R3 = R2^R1
mov r4,#5 ; OPERAÇÃO
mov r2,#5 ; OPERANDO 1
mov r1,#4 ; OPERANDO 2
; Zera variáveis auxiliares
mov r3,#0
mov r5,#0
mov r6,#0
mov r7,#0
; Identifica qual a operação escolhida
cmp r4,#1
blt fim
beq soma
;******
cmp r4,#2
beq subt ; se r4=2 pula para subtração
;******
cmp r4,#3
beq mult
;******
cmp r4,#4
beq divisao
;******
cmp r4,#5
bgt fim
beq exp
;******
;******; ALGORITMO DE SOMA:
soma add r3,r2,r1
b fim
;******; ALGORITMO DE SUBTRAÇÃO:
subt sub r3,r2,r1
b fim
;******; ALGORITMO DE MULTIPLICAÇÃO:
mult add r3, r3, r2
sub r1, r1, #1
cmp r1, #1
bge mult
cmp r4,#5
beq auxexp2 ;continua, se for exponenc. e salva o resul. parcial em R7
b fim
;******; ALGORITMO DE DIVISÃO:
divisao mov r4,r2
div2 subge r4,r4, r1
add r3, r3,#1
cmp r4,r1
bge div2
b fim
;*******; ALGORITMO DA EXPONENCIAÇÃO:
auxexp2 mov r7,r3
sub r6,r6,#1
cmp r6,#0
bgt auxexp1
mov r3,#1
b fim
exp mov r5,r2
mov r7,r2
sub r6,r1,#1
cmp r6,#0
bgt auxexp1
mov r3,#1
b fim
auxexp1 mov r1,r7 ;para fazer R2 x R2 e não R2 X R1
mov r3,#0
mov r7,#0
b mult
fim
Para rodar no ARMSIM:
;PROGRAMA CALCULADORA DE 5 OPERAÇÕES
; R4 = 1 -> R3 = R2 + R1
; R4 = 2 -> R3 = R2 - R1
; R4 = 3 -> R3 = R2 X R1
; R4 = 4 -> R3 = R2 / R1
; R4 = 5 -> R3 = R2^R1
mov r4,#5 ; OPERAÇÃO
mov r2,#5 ; OPERANDO 1
mov r1,#4 ; OPERANDO 2
; Zera variáveis auxiliares
mov r3,#0
mov r5,#0
mov r6,#0
mov r7,#0
; Identifica qual a operação escolhida
cmp r4,#1
blt fim
beq soma
;******
cmp r4,#2
beq subt ; se r4=2 pula para subtração
;******
cmp r4,#3
beq mult
;******
cmp r4,#4
beq divisao
;******
cmp r4,#5
bgt fim
beq exp
;******
;******; ALGORITMO DE SOMA:
soma: add r3,r2,r1
b fim
;******; ALGORITMO DE SUBTRAÇÃO:
subt: sub r3,r2,r1
b fim
;******; ALGORITMO DE MULTIPLICAÇÃO:
mult: add r3, r3, r2
sub r1, r1, #1
cmp r1, #1
bge mult
cmp r4,#5
beq auxexp2 ;continua, se for exponenc. e salva o resul. parcial em R7
b fim
;******; ALGORITMO DE DIVISÃO:
divisao: mov r4,r2
div2: subge r4,r4, r1
add r3, r3,#1
cmp r4,r1
bge div2
b fim
;*******; ALGORITMO DA EXPONENCIAÇÃO:
auxexp2: mov r7,r3
sub r6,r6,#1
cmp r6,#0
bgt auxexp1
mov r3,#1
b fim
exp: mov r5,r2
mov r7,r2
sub r6,r1,#1
cmp r6,#0
bgt auxexp1
mov r3,#1
b fim
auxexp1: mov r1,r7 ;para fazer R2 x R2 e não R2 X R1
mov r3,#0
mov r7,#0
b mult
fim: