Test Foro de elhacker.net SMF 2.1

Programación => Programación General => ASM => Mensaje iniciado por: [Kayser] en 23 Enero 2013, 20:13 PM

Título: Duda con código de programa que convierte mayusculas a minusculas
Publicado por: [Kayser] en 23 Enero 2013, 20:13 PM
Hola gente sigo aprendiendo ensamblador o almenos intentandolo esta vez tengo dudas con el siguiente codigo que lo que hace es cambiar de mayusculas a minusculas:


segment Pila stack
   resb 64
InicioPila:
   
   ; Segmento de código
   segment Codigo

..start:
   ; preparamos DS y BX
   ; para acceder al cáracter
   ; de la fila 12 columna 2
   ; de la pantalla de texto
   mov ax, 0b800h
   mov ds, ax
   mov bx, 160*12+1*2

   ; Recuperamos el carácter en AL
   mov al, [bx]
   
   cmp al, 'A' ; Comparamos con la A
   jb Salir      ; si es inferior saltamos
   cmp al, 'Z' ; Comparamos con la Z
   ja Salir      ; si es superior saltamos

   ; Convertimos a minúscula
   add al, 32 ; sumando 32
   mov [bx], al ; y escribiendo en pantalla

Salir:
   ; en cualquier caso modificamos el atributo
   inc bx
   ;para resaltar el carácter tanto si se ha
   ;cambiado como si no
   mov byte [bx], 0fh

   ; salimos al sistema
   mov ah, 4ch
   int 21h
   


Mi duda es:
En que momento se accede a memoria y se realiza el cambio del atributo?
Título: Re: Duda con código de programa que convierte mayusculas a minusculas
Publicado por: Eternal Idol en 23 Enero 2013, 22:10 PM
mov byte [bx], 0fh

El siguiente byte despues de cada caracter es el atributo que le corresponde (por eso usa inc bx, antes bx apuntaba al caracter).