Duda con código de programa que convierte mayusculas a minusculas

Iniciado por [Kayser], 23 Enero 2013, 20:13 PM

0 Miembros y 1 Visitante están viendo este tema.

[Kayser]

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?

Eternal Idol

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).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón