Foros del Web » Programación para mayores de 30 ;) » Programación General »

Programación en assemble

Estas en el tema de Programación en assemble en el foro de Programación General en Foros del Web. Hola como estan todos Mi nombre es Jhonathan y el caso es q necesito una ayudita, un amigo mio hizo un programa en assemble sinceramente ...
  #1 (permalink)  
Antiguo 21/07/2009, 06:25
Avatar de LDJS075  
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 9 meses
Puntos: 0
Programación en assemble

Hola como estan todos

Mi nombre es Jhonathan y el caso es q necesito una ayudita, un amigo mio hizo un programa en assemble sinceramente no se mucho de ello pero quiero ayudarle, el ya realizo el codigo pero le genera un error al realizar la multiplicación y no muestra el resultado

El ejercicio pide que:
Saque el cubo de los 10 primeros números naturales impares y sume sus resultados:
en otras palabras:

1^3+3^3 + 5^3+7^3+9^3+11^3+13^3+15^3+17^3+19^3 =
1º 2º 3º 4º 5º 6º 7º 8º 9º 10º

Aqui esta el codigo

.model small
.data
titulo1 db 13,10," Porograma que Calcula la suma y el Cubo $"
titulo2 db 13,10," de los Primeros Numeros Naturales Impares $"
titulo_numero db 13,10," Numero: $"
titulo_cubo db " Cubo: $"
titulo_suma db 13,10,"La Suma de Todo los Cubos es: $"
suma db ?
cantidad db 1
.code
programa:

;Mueve el segmento de datos al Registro
mov ax, @data
mov ds, ax

; Imprime el Titulo1
lea dx, titulo1
mov ah,9
int 21h

; Imprime el Titulo2
lea dx, titulo2
mov ah,9
int 21h


SUBIR:
; Asigno al= al numero
mov al,[cantidad]

; Calculo el cubo de numero, todo se alamcena en el registro al
mov bl,[cantidad]
mul bl ; multiplico 1 vez
;mul bl ; multiplico 2 vez
;mul bl ; multiplico 3 vez

add [suma], al; Acumulo la Suma de cada cubo

; Muestro el resultado del cubo por pantalla
; Imprimo el Titulo
lea dx, titulo_numero
mov ah,9
int 21h

;Convierto el Numero a un codigo ASCII, para imprimirlo
;sub al,030h
; 1 27 125 343 792 1288
; Imprimo el Numero
mov dl, [cantidad]
add dl,030h
mov ah,02h
int 21h

; Muestra el Mensaje "CUBO"
lea dx, titulo_cubo
mov ah,9
int 21h

; Muestra el Resultdo del Cubo
mov dx, ax
add dx,030h
mov ah,02h
int 21h


; incremento el contador de numeros en 2
add cantidad,2

;Comparo para ver si llego a nueve
cmp cantidad,11

;Si llego salta a fin
je FIN

; Si no suber a la etiqueta SUBIR
jmp SUBIR

FIN:
; Imprimo el Titulo del resultado de la suma
lea dx, titulo_suma
mov ah,9
int 21h

;Convierto el Numero a un codigo ASCII, para imprimirlo
mov al,suma
; sub al,030h

; Imprimo el Numero
mov dl, al
mov ah,02h
int 21h

; Termina el Programa
mov ax, 4c00h
int 21h
end programa

Última edición por LDJS075; 21/07/2009 a las 06:26 Razón: falto el codigo
  #2 (permalink)  
Antiguo 22/07/2009, 03:36
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Programación en assemble

Asi muy por encima un par de cosas: de esa manera solo se pueden imprimir numeros de 0 a 9, tenes que multiplicar el numero por si mismo 2 veces para conseguir el cubo y tenes que guardar el resultado en algun lado, una variable de tipo dw seria lo ideal.



PD. El lenguaje en ingles es assembly, assembler es el programa que ensambla.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:40.