martes, 7 de septiembre de 2010

Filtro Simple en Ensamblador Gnu Assembler GAS


Este programa lee desde la entrada estándar caracteres y los convierte a mayúsculas para finalmente escribirlos en la salida estándar, permite manipular archivos usando las habilidades de re dirección de la consola

por ejemplo

./hola5 > salida.txt < entrada.txt

pasa a mayúsculas todo el contenido del archivo entrada.txt y lo guarda en salida.txt



requiere

binutils

para ensamblar

as -o hola5.o hola.asm

para enlazar

ld -o hola5 hola5.o

ejecutar

./hola5

.text

.global _start

_start: 


inicio:

    call ReadChar
    
    cmpl $0 , %eax

    je salir

    cmpb $0x61 , Caracter

    jb escribir    

    cmpb $0x7a, Caracter

    ja escribir

    subb $0x20 , Caracter 

        
escribir:

    call WriteChar
    
    jmp inicio

salir:

    movl    $0, %ebx
    movl     $1, %eax    
    int $0x80
    ret




WriteChar: 
    
    movl    $1, %edx
    movl     $Caracter, %ecx
    movl    $1, %ebx
    movl     $4, %eax

    int $0x80

    ret    #return

ReadChar:

    movl    $1, %edx
    movl     $Caracter, %ecx
    movl    $0, %ebx
    movl     $3, %eax

    int $0x80

    ret    #return
    
#########################################

.data 

.bss

    .lcomm Caracter, 1


Descargar Código Fuente