Calculadora Assembler

Páginas: 5 (1003 palabras) Publicado: 12 de diciembre de 2012
.data
signo: .asciiz "0"
num1: .asciiz "--------------------------"
num2: .asciiz "--------------------------"
resp: .asciiz "00000000000000000000000000000000000000000000000000"
parche: .asciiz ""
aux: .asciiz "00000000000000000000000000000000000000000000000000"

top: .ascii "\n-------------------------------------------------------\n"
top2: .asciiz"||---------------------------------------------------||\n"
border: .asciiz "|| ||\n"
calc: .asciiz "|| Calculadora ||\n"
bot: .ascii "||---------------------------------------------------||\n"
bot2: .asciiz "-------------------------------------------------------\n"
msg1: .asciiz "||Que Operación desearealizar? ||\n"
msg2: .asciiz "||Introduzca una opcion Valida ||\n"
msg3: .asciiz "||Introduzca un número de hasta 25 dígitos ||\n"
msg4: .asciiz "|| EL RESULTADO DE SU OPERACION ES ||\n"
adios: .asciiz "|| ADIOS! ||\n"
opt: .asciiz "||1- Sumar GTFO||\n||2- Restar GTFO ||\n||3- Multiplicar GTFO ||\n||4- Dividir (Goddamn) ||\n||5- Salir ||\n"
line: .asciiz "||---------------------------------------------------||\n"
salto: .asciiz "\n"
bor: .asciiz "||"
.text main

main:start:
li $t0,48
li $t2,24
sb $t0,signo
li $t0,0
jal tope

li $v0,4
la $a0,calc
syscall

jal final

options:
jal borde
li $v0,4
la $a0,opt
syscall

jal borde
jal final

li $v0,5
syscall
move $t7,$v0
bgt $t7,5,options1
blt $t7,1,options1
beq $t7,5,salir
jal pedir
li $t4,0 #acarreo/auxiliar
li $t0,24#contador numeros
li $t5,49 #contadore resp
beq $t7,1,suma
beq $t7,2,resta
beq $t7,3,multi
beq $t7,4,division


options1:
jal tope
li $v0,4
la $a0,msg2
syscall
b options

#------------------------------------------SUMAR--------------------------------------------------#
suma:
bne $s7,5,GG
lb $t1,aux($t0)
lb $t2,resp($t0)
b GG2
GG: # GoodGoing
lb $t1,num1($t0)
lb $t2,num2($t0)
GG2: #Good Going 2
addi $t1,$t1,-48
addi $t2,$t2,-48
add $t3,$t1,$t2
add $t3,$t3,$t4
li $t4,0
ble $t3,9,suma1
addi $t3,$t3,-10
addi $t4,$t4,1
suma1:
addi $t3,$t3,48
sb $t3,resp($t5)
addi $t5,$t5-1
addi $t0,$t0,-1
bne $t0,-1,suma
addi $t4,$t4,48
sb $t4,resp($t5)

bne $s7,5,GG3
jr $ra
GG3:
jal resultadojal wiperesp
j start

#-------------------------------------------------------------------------------------------------#

#-----------------------COMPROBAR EL MAYOR NUMERO PARA LA RESTA-----------------------------------#
mayor:
lb $t1,num1($t0)
lb $t2,num2($t0)
bgt $t1,$t2,si
blt $t1,$t2,no
addi $t0,$t0,1
ble $t0,24,mayor
si:
li $t6,1
no:
li $t0,24
jr $ra#-------------------------------------------------------------------------------------------------#

#------------------------------------------RESTAR-------------------------------------------------#
resta:
li $t6,0
li $t0,0
jal mayor

resta0:

bne $t6,1,auxresta
lb $t1,num1($t0)
lb $t2,num2($t0)
b auxresta2
auxresta:
lb $t1,num2($t0)
lb $t2,num1($t0)
li$t9,45
sb $t9,signo

auxresta2:
addi $t1,$t1,-48
addi $t2,$t2,-48

beqz $t4,resta1
addi $t1,$t1,-1
resta1:
blt $t1,$t2,resta2
sub $t3,$t1,$t2
li $t4,0
b resta3
resta2:
addi $t1,$t1,10
addi $t4,$t4,1
sub $t3,$t1,$t2
resta3:
addi $t3,$t3,48
sb $t3,resp($t5)
addi $t5,$t5,-1
addi $t0,$t0,-1
bne $t0,-1,resta0

jal resultado
jal wiperesp
j start...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Calculadora En Assembler
  • Calculadora, Assembler, Linux
  • Calculadora En Assembler Por Puerto Paralelo
  • Calculadora Basica Assembler
  • Assembler
  • Assembler
  • Assembler
  • assembler

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS