20 oct 2012

EJERCICIOS ASSEMBLER

Ejemplos en assembler
  • Ejemplos introductorios assembler(Download PDF):En este archivo se encontrara la suma de números mediante asignación de datos a los registros, también nos enseña como mostrar por pantalla un carácter ASCII y hacer un bucle repetitivo todo esto se realiza en el DEBUG de windows.
Realizado en EMU8086 v4.08

Ejemplo 1: Mostrar su nombre en pantalla mediante interrupciones

org 100h ;Todo lo escrito despues de " ; " son comentarios  
 ;escribir su nombre en pantalla 
 jmp inicio ;salto incondicional a una etiqueta
 nombre db "Jorge Arce$";Para este caso el nombre tiene que terminar con $ 
 inicio:  ;etiqueta
 mov ah,9 ;con esto le digo a la interrupcion que escriba en pantalla 
 mov dx,offset nombre ;con esto le indico la direccion del texto 
 int 21h ;invoco a la interrupcion para escribir en pantalla 
 int 20h ;invoco interrupcion para termina el programa 
ret                    

Ejemplo 2Mostrar su nombre en pantalla mediante el acceso a la memoria del video en modo texto


org 100h 
 ;escribir su nombre en pantalla accediendo a la memoria del video 
 jmp inicio 
 nombre db "Jorge Arce";Guardo en una variable mi nombre 
 inicio: ;etiqueta para saltos de memoria 
   
 mov dx,0b800h ;guardo la direccion del video en dx 
 mov es,dx ;direcciono el video al segmento extra  
 mov cx,10 ;guardo en cx la cantidad de caracteres de la variable nombre 
 mov si,0 ;inicializo la posicion del primer caracter 
 mov di,offset nombre ;direcciono en "di" la direccion inicial de nombre  
bucle:  ;etiqueta para el bucle o ciclo repetitivo 
 mov al,[di] ;direcciono en "al" el siguiente caracter de nombre 
 es:mov byte ptr[si],al ;muestro en pantalla el caracter en posicion "si" 
 add si,2 ;desplazo la posicion de puntero para seguir escribiendo 
 inc di ;incremento en 1 a "di" y paso al siguiente caracter 
 loop bucle ;regresa a bucle y resta cx en 1 hasta que cx sea igual a 0  
 int 20h ;invoco interrupcion para termina el programa 
ret                    
Ejecución de los dos programas anteriores

No hay comentarios: