Inicio ¿Sidebar? RSS @MisAlgoritmos at Twitter

Hoy examen de Ensamblador

Así es, hoy es el día de mi desceso... ¡¡Examen de ensamblador!! y,... Seguramente, reprobaré :-(. No me sirvio de nada la documentación, ni los ejemplos, en especial los últimos que ni se que hacen jeje ¡¡ Pase con 8 :D ;-) !!

Entre otros que hasta vergüenza me da ponerlos si no se lo que hacen :-(,... creo que esta vez, ni la suerte me ayudará.

[actualizado]

He aquí mi horrible programación bajo presión...

  • Aplicación que permita leer el nombre y calificació de 5 alumns, valide si no se repiten los nombres, la calificación tendrá que ser solo de dos digitos, no mayor a 10 ni menor a 0, hmmm,... creo que era todo :-S ¡ho si! también que tenga mucha crema!,... quería una interfáz gráfica agradable al usuario.

Increible pero cierto jeje :P

  1. .model small
  2. .stack
  3. .data
  4.         nom db 50 dup(' '),'$'  ;Variable para leer el nombre
  5.         cal db 2 dup('0'),'$'   ;Calificación
  6.         sum db 3 dup('0'),'$'   ;Sumatoria para el promedio
  7.  
  8.         aux db 3 dup('0'),'$'   ;auxiliar
  9. .code
  10. .startup
  11.         call clrScr
  12.         ;1ero
  13.         call leerNombre ;Obtenemos los datos de un usuario
  14.         call leerCalificacion   ;Leemos calificación de primero usuario
  15.         call sumar
  16.  
  17.         ;2do
  18.         call leerNombre ;Obtenemos los datos de un usuario
  19.         call leerCalificacion   ;Leemos calificación de primero usuario
  20.         call sumar
  21.  
  22.         ;3ero
  23.         call leerNombre ;Obtenemos los datos de un usuario
  24.         call leerCalificacion   ;Leemos calificación de primero usuario
  25.         call sumar
  26.  
  27.         ;4to
  28.         call leerNombre ;Obtenemos los datos de un usuario
  29.         call leerCalificacion   ;Leemos calificación de primero usuario
  30.         call sumar
  31.  
  32.         ;5to
  33.         call leerNombre ;Obtenemos los datos de un usuario
  34.         call leerCalificacion   ;Leemos calificación de primero usuario
  35.         call sumar
  36.  
  37.         call promedio
  38.  
  39. .exit
  40.         leerNombre proc c       ;Procedimiento se  *supone* leerá un nombre
  41.                 mov cx,0
  42.                 mov si,0
  43.                 .repeat
  44.                         mov ah,01h      ;Leemos caracter
  45.                         int 21h  ;Ejecutamos la interrupcion para leer carcter
  46.                         cmp al,13
  47.                                 je continuar
  48.                         mov nom[si],al  ;Movemos a la cadena el caracter leído
  49.                         inc cx    ;Incrementamos CX, para comparar cuando llegue a 0
  50.                         inc si    ;Incrementamos también si
  51.                 .until cx==50
  52.                 continuar:
  53.                         mov nom[si],'$' ;Terminamos cadena de caracteres
  54.                 call nl ;Salto de línea
  55.                 ret     ;Retornamos el control al flujo del programa
  56.         leerNombre endp
  57.  
  58.         leerCalificacion proc c ;Procedimiento para leer la calificación
  59.                 mov cx,0
  60.                 mov si,0
  61.                 .repeat
  62.                         otro:
  63.                         mov ah,07h      ;Leemos caracter sin eco
  64.                         int 21h  ;Ejecutamos la interrupcion para leer carcter
  65.                         cmp al,13
  66.                                 je continuar
  67.                         cmp al,30h
  68.                                 jl otro
  69.                         cmp al,39h
  70.                                 jg otro
  71.                         mov ah,02h      ;Mostramos digito introducido
  72.                         mov dl,al       ;Movemos caracter a mostrar
  73.                         int 21h  ;Lo mostramos
  74.                         mov cal[si],al  ;Movemos a la cadena el caracter leído
  75.                         inc cx    ;Incrementamos CX, para comparar cuando llegue a 0
  76.                         inc si
  77.                 .until cx==2
  78.                 continuar:
  79.                         mov cal[si],'$' ;Terminamos la cadena de caracteres
  80.  
  81.                 ;Convertirmos cadena a su valor numérico decimal
  82.                
  83.  
  84.                
  85.                 call nl ;salto de línea
  86.                 ret     ;Retornamos el control al flujo del programa
  87.  
  88.         leerCalificacion endp
  89.        
  90.         clrScr proc c   ;Procedimiento que permite limpiar la pantalla
  91.                 mov ah,00h      ;Definimos modo de video
  92.                 mov al,03h            ;Seteamos el modo
  93.                 int 10h  ;Ejecutamos interrupción
  94.                 ret          ;Retornamos el control al flujo del programa
  95.         clrScr endp
  96.  
  97.         nl proc c       ;Procedimiento para ir a nueva línea
  98.                 mov ah,02h            ;Mostrar caracter en pantalla
  99.                 mov dl,10                     ;LF
  100.                 int 21h   ;Mostramos caracter
  101.                 mov dl,13                     ;CR
  102.                 int 21h   ;Mostramos caracter
  103.                 ret
  104.         nl endp
  105.  
  106.         sumar proc c    ;Procedimiento que permite llevar el control de la suma para evaluar el promedio
  107.                 sub cal,30h     ;48
  108.                 mov al,cal
  109.                 add sum,al
  110.                 add cal,30h     ;48
  111.                 ret
  112.         sumar endp
  113.  
  114.         promedio proc c ;Evalua el promedio      ;Procedimiento que **se supone** **debería** evaluar el promedio en base a sum/5
  115.                 mov al,5        ;Movemos el divisor
  116.                 div sum  ;Dividimos por AL
  117.                
  118.                 mov ah,02h      ;imprimir caracter
  119.                 mov dl,al       ;Caracter a imprimir ¿Caracter? ja Estoy enviando cadena :-S
  120.                 add dl,30h
  121.  
  122.                 int 21h  ;Ejecutamos la interrupción
  123.                 ret
  124.         promedio endp
  125. end

24 comentarios en Hoy examen de Ensamblador

Victor

Pues dicho y hecho... ¡Reprobé!, luego pondré lo que logré avanzar, que por cierto aún tengo que terminarlo para entregarlo como tarea.

Victor

Valla que si necesitaré un milagro!... Tengo que entregarlo hoy mismo, a las 3pm

Victor

Pase con 8 :D

NoÉmis

Mugroso! Te salvaste del ordinario de ensamblador, qué más quieres?
Jaja. Saluditos.

Victor

Pues :D Solo quiero que esta navidad mi <strong>Querído</strong> y <strong><em>estimado</em></strong> Santa, me traiga 2 brazos más para trabajar aún más rapido y con eficiencia...

...y también que me ayude a pasar mi examen de TCP/IP, Calculo, Programación en Visual Basic Net, hmm ¿que mas...? ¡¡Andamos igual o piior noémis!!

Mis Algoritmos » Querido y estimado Santa

[...] ¿Es mucho pedir ? Y antes de que se me olvide,… Que ayudes a los que no pasaron el examen de Ensamblador. jeje [...]

KKCK

JAJAJAJA PRIMERO QUE NADA SOY MEXICANO, NO SE NI DE DONDE ERES JEJEE, PERO ALGO SI TE VOY A DECIR GRACIAS A DIOS Y A TI PORQUE ENCONTRE TU PÁGINA, ESTOY ESTUDIANDO ING. EN SISTEMAS Y ESTOY VIENDO ENSMBLADOR, ASI QUE TENGO UN MONTONAL DE DUDAS, ESTOY BUSCANDO INFORMACION SOBRE ENSAMBLADOR Y SI ENCUENTRO PERO YA COSAS MUY AVANZADAS NADA TAN BASICO, Y ASI LLEGUE A TU PAGINA, AL FIN ENCUENTRO PROGRAMAS QUE PUEDO ENTENDER PARA GUIARME Y HACER LOS MIOS, FELICIDADES POR TU 8 Y HABER COMO ME VA A MI EN MI EXAMEN DE ENSAMBLADOR QUE LO HAGO JUSTAMENTE EL 8 DE ENERO JEJEJE, OJALA Y ME VAYA BIEN, MIENTRAS TANTO ME ESTUDIARE TUS CODIGOS Y VEREMOS QUE SE PUEDE APRENDER, MUCHAS GRACIAS Y HASTA PRONTO.

Victor

Gracias, gracias :D

Suerte con lo del examen del 8 de enero, mis compañeros también andan en eso, y valla que si les dejaron un trabajo de investigación algo elaborado que mejor ni mencionar :D ...

Estudio en la Facultad de Telemática de la Universidad de Colima en Colima, Colima, México.

Por cierto, si te sirve,... <a href="http://www.mis-algoritmos.com/sabrosus/tag/ensamblador" title="Ensamblador básico" rel="nofollow">aquí</a> hay algo de documentación y bastante básica.

Viejos tiempos con internet at Mis Algoritmos

[...] Y nada de reprobar examenes de visual basic, física, calculo, CISCO, ingles… :-S (Al menos ya pase Ensamblador jeje) y bueno, se que tengo que estudiar, comenzaré por revizar mi FeedReader. Artículos parecidos: [...]

KKCK

jejejejeje mucha gracias =D me fue muy bien en mi examen, y estoy haciendo programas basicos, apenas voy a ver macros pero ya le entiendo =D, me han servido de mucho tus codigos, yo estudio ing. en sistemas computacionales en el tec del istmo. Y adelante

Victor

Pues si puedes, comparte <a href="http://www.mis-algoritmos.com/asm_in.html" rel="nofollow">tus ejemplos</a> aunque no estén del todo documentados,.. :D

Mis Algoritmos » Querido y estimado Santa

[...] ¿Será mucho pedir ? Y antes de que se me olvide,… Que ayudes a los que no pasaron el examen de Ensamblador. jeje Artículos parecidos: [...]

Blog de Victor De la Rocha » Viejos tiempos con internet

[...] nada de reprobar examenes de visual basic, física, calculo, CISCO, ingles… :-S (Al menos ya pase Ensamblador jeje) y bueno, se que tengo que estudiar, comenzaré por revizar mi [...]

Andrei D

Hola, se ve interesante todo esto de ensamblador, yo apenas estoy comenzando en mi carrera de ing. en sistemas y estoy comenzando a ver C/C++, so far so good jaja, y pues aunq se ve interesante todo esto no creo que yo lo llegue a ver, porque en la universidad que estoy pues no es tan buena en ing. en sistemas que digamos asi que si quiero aprender tengo que volarle verga por mi cuenta jaja, se ve que le haces huevo a la programacion loco asi que ahi de vez en cuando talvez te pregunte algunas cosas y espero me podas ayudar jeje, x cierto soy de nicaragua y estudio en la UCA(universidad centroamericana), ahi una universidad de jesuitas chancha jajaja, bueno eso es todo, saludos y ahi nos vemos(felicidades x tu 8 x cierto jaja)

Victor De la Rocha

Pues si, de hecho es muy interesante, las posibilidades se amplían al desarrollar en ASM. Es una lástima que sea tan difícil programar :S

Es bueno programar en C, yo lo usaría,… pero ando envuelto en otros proyectos y ya no he tenido tiempo de revivir aquellos tiempos en que me la pasaba <a href="http://www.mis-algoritmos.com/ejemplos/indice-10.html" rel="nofollow">programando tonterías en C</a>

Gracias Andrei :)

.hack//

Bueno, primero que nada hola.

Estoy iniciando con la clase de lenguaje ensamblador y queria preguntar que significa el startup, en que programa se usa, ya que uso el TASM, y el TLIK, pero en el TASM me marca error con la isntruccion startup, ya que si se la quito, me deja ejecutarlo bien.

Muchas gracias de antemano.
Saludos

Victor De la Rocha

el .startup si no mal recuerdo, es donde inicia la aplicación.

lucy

ola!! tu pagina me gusta mucho y algunos codigos me han sacado de apuro en algunas tareas y ps ahorita ando en mi ultimo examen de ensamblador y necesito un programita q me aparezca de algun color al teclear cualkier tecla (jaja) y q se cierre el programa cuando vuelva a teclear y estaba viendo un codigo q tienes de cambia el fondo de pantalla pero a la hora q lo kiero correr me salen unos errores
en la linea 9: especting scalar type o undefined symbol:cade
13, 15, 17, 19, 27, 32: illegal instruction

ojala me puedas ayudar en esos errorsillos

estoy utilizando el tasm

te agradecere un resto

Victor De la Rocha

Hola Lucy, disculpa que no puedo apoyarte en este problema. Yo usé el compilador MASM. No tengo idea que es lo que pudiera estar fallando. Quizá alguna librería o un cambio en la instrucción.

Quizá si buscas un libro especializado en el compilador que utilizas.

daniel

Pensé que si te la rifabas en ASM, yo tmb tuve un examen hace poco, saque 100, para 3 horas creo que no está tan mal programado http://danielnieto.wordpress.com/2010/02/22/simulacion-de-sms-en-ensamblador-8086/

Liz

no entiendo la esctructura? podrian enviarme uno que pida el nombre de un alumno y q´pida 5 calificaciones y las promedie xfavor ayudaaaaaaaaaaaaa! correo avie17@hotmail.com.mx

Liz

se los agradeceria de verdad!

Victor

daniel, no es mi fuerte el Ensamblador. Lo cursé como materia, es todo :)

luisangel

yehaa man buena pagina buenos codigos
me ayudaron a recordar!!
ando en programacion de sistemas
soy de mexico
estudio
ing . en sistemas computacionales jaja !
tus codigo rulean!!

Deja un comentario

¿Cuanto es 2 + 3 - 5? =

Suscribirse a los comentarios.