Inicio ¿Sidebar? RSS @MisAlgoritmos at Twitter

Mas de ensamblador

Hace casi dos semanas que comencé a programar en ensamblador y apenas comienzo a comprender cosas que antes ni con frijolitos entendía,… Aunque aún no se decir cuales jeje… Solo se que todo me confunde!! :-(

Después de casi un mes de estar ensamblando código asm, hoy toca el turno al maestro de ensamblarnos a todos con su examen, y quien sabe que tan difícil valla a estar… Ya me tiemblan las patas de miedo, y encima de todo, estoy esperando los ataques de nervios que llegan cuando estoy en el examen… y cuando sucede, se me olvida todo y no me acuerdo ni de mi nombre!

Antes de morir en el examen dejaré mis últimos programas horriblemente desarrollados por mi ^^

Aplicación que muestra la tabla de multiplicar de un número dado

  1. .model small
  2. .stack
  3. .data
  4.    N db ?
  5. .code
  6. .startup
  7.    
  8.    ;cls
  9.       mov ah,00h
  10.       mov al,03h
  11.       int 10h
  12.  
  13.    ;Tabla
  14.       mov ah,01h     ;Input
  15.       int 21h        ;Interrupcion de DOS
  16.       sub al,30h     ;Ajustamos para realizar operaciones internas
  17.       mov N,al    ;Tabla a visualizar
  18.       mov cl,00h     ;Contador auxiliar
  19.      
  20.  
  21.    operaciones:
  22.       mov al,N    ;AL = N
  23.       mul cl         ;AL = AL * CL
  24.       aam            ;Ajuste en ASCII para separa Acarreo
  25.       mov bx,ax      ;AX lo almacenamos en BX
  26.  
  27.       mov ah,02h     ;Standar output
  28.       mov dl,' '     ;Separador
  29.       int 21h        ;Interrupción de DOS
  30.  
  31.       mov ah,02h     ;Standar output
  32.       mov dl,bh      ;PARTE ALTA
  33.       add dl,30h     ;Ajuste para darle salida en pantalla
  34.       int 21h        ;Interrupción de DOS
  35.  
  36.       mov ah,02h     ;Standar output
  37.       mov dl,bl      ;PARTE BAJA
  38.       add dl,30h     ;Ajuste para salida en pantalla
  39.       int 21h        ;Interrupción de DOS
  40.  
  41.       inc cl         ;CL = CL + 1
  42.       cmp cl,10      ;IF CL = 10
  43.          je salir    ;[salir]
  44.                   ;else
  45.          jne operaciones ;[Operaciones]
  46.    salir:
  47.    
  48. .exit
  49. end

Programa que desplaza una palabra hacia arriba y abajo con las teclas 1 y 2 respectivamente

  1. .model small
  2. .stack
  3. .data
  4.    
  5.    msg db 'mis-algoritmos.com$'
  6.    fle db ?
  7.    
  8. .code
  9. .startup
  10.    
  11.    ;cls
  12.       mov ah,00h        ;Set video mode
  13.       mov al,03h        ;mode
  14.       int 10h           ;Interrupcion de video
  15.  
  16.    ;posición
  17.       mov ah,02h        ;Salida
  18.       mov dh,08         ;row
  19.       mov dl,02         ;columna
  20.       int 10h           ;interrupcion de video
  21.  
  22.    ;mensaje
  23.       mov ah,09h        ;Print string
  24.       lea dx,msg        ;
  25.       int 21h           ;Interrupcion de DOS
  26.  
  27.    movimiento: ;Determina movimiento a realizar
  28.       mov ah,07h        ;Direct STDIN input, no echo
  29.       int 21h           ;interrupcion de DOS
  30.       jmp compara       ;VERIFICAMOS EL CARACTER INTRODUCIDO
  31.  
  32.    subir:
  33.       mov ah,06h        ;Scroll page up
  34.       mov al,1       ;Number of lines to scroll window (0=blank whole window)
  35.       mov bh,01h        ;Attibutes to be used on blanked lines
  36.       mov cx,0001h      ;Ch=00H Cl=01h --> fila, colum -> of upper left corner of window to scroll
  37.       mov dx,184fh      ;Dh=18H Dl=4f --> fila, colum -> of lower right corner of window
  38.       int 10h           ;Interrupción de video
  39.       jmp movimiento
  40.  
  41.    bajar:
  42.       mov ah,07h        ;Scroll page down
  43.       mov al,1       ;numer of lines to scroll window (0 = blank whole window)
  44.       mov bh,02h        ;attributes to be used on blanked lines
  45.       mov cx,02h        ;CH=00 CL=02H --> fila, colum -> of upper left corner of window to scroll
  46.       mov dx,184fh      ;DH=18H DL=4F --> fila, colum -> of lower right corner of window
  47.       int 10h           ;Interrupción de video
  48.       jmp movimiento    ;
  49.  
  50.    compara:
  51.       cmp al,13         ;tecla Enter
  52.          je salir    ;
  53.       cmp al,49         ;tecla 1
  54.          je bajar    ;
  55.       cmp al,50         ;tecla 2
  56.          je subir    ;
  57.  
  58.    salir:
  59. .exit
  60. end

15 comentarios en Mas de ensamblador

lightme

Dicho y hecho...el asm es un joda :P

Victor

y valla que si jeje

Claudia

hola amiguito

Victor

Hola amiguita :D jeje ... ¡Póngase a estudiar y no esté dejando SPAM por donde quiera!

alex

oye necesito ayuda con ensamblador....

Victor

Alex, ¿Podrías poner tu pregunta acerca de ensamblador en el <a href="http://www.mis-algoritmos.com/foro" rel="nofollow">foro</a> porfavor ;-)?

link

pongan programas en java

Victor

Tal vez para despues de Enero comienze a poner ejemplos en Java. Por el momento es solo proyecto a futuro :D sorry :-(

DJK

Hola a todos, bueno quiero compartir este codigo con ustedes, trata sobre el booteo desde disket, esto lo hicimos como ejemplo en el curso de sistemas operativos espero ke les sirva, para poder usarlo tienen ke kopiar este texto dentro de un archivo de texto con cualkiero nombre yo le puse dos.asm, insertar un disket formateado en la disketera y luego desde el promt de Windows XP tipeamos DEBUG

Victor

hmm, ya lo haz insertado en <a href="http://www.mis-algoritmos.com/asm_in.php" title="Agregar código fuente en Ensamblador" rel="nofollow">el formulario</a>?

GEN

Tengo de kompilador el NASM y no me jala kon su kodigo,
jaja no c por ke??????????????????

ke kompilador utilizan?

bye

Victor De la Rocha

Puedes utilizar el ensamblador de Microsoft (hasta la version 5.x) es MASM.EXE o el ensamblador de Borland TASM.EXE.

Y para mayor información, te recomiendo comprar el siguiente libro:
<a href="http://books.google.com.mx/books?id=SSx9RVJmqa4C">Lenguaje ensamblador y programación para IBM PC y compatibles</a> (<i>Escrito por Peter Abel, Víctor Hugo Ibarra Mercado</i>)

rOsa

cual es codigo necesario en lenguaje ensamblador que permita leer un caracter
y un codigo que permita leer el numero de una cifra

Leeandro

Mae en que asm estas, en tasm?? o cual
tienes informacion acerca de la interrupcion 07h del 21h

Arauz

Hola que tal, am quise utilizar tu codigo del "Programa que desplaza una palabra hacia arriba y abajo con las teclas 1 y 2 respectivamente" para realizar el de uno en el q imprima un asterisco y pueda moverlo en la direccion deseada, pero en la linea 19 m marca un error sobre el comando "lea" lo cambie por un MOV y creo q quedo. Creo que tambien en esa misma linea pusiste "lea dx,msg" en cuanto a lo que se, msg no es una direccion de memoria, entoncs m podrias ayudar en cuanto a que direccion puedo poner ahi?


Saludos.

Deja un comentario

¿Cuanto es 2 + 3 - 5? =

Suscribirse a los comentarios.