ejemplos modo protegido.pdf

Vista previa de texto
; de ds:esi mediante la instrucción lodsb y se verifica que el valor sea
; distinto de 0. Luego se lo coloca en es:edi, se incrementa edi y se
; continúa con el siguiente byte.
;
mov ah,07h
cadena:
mov al,[esi]
cmp al,0
je salir_cadena
mov [es:edi],ax
inc edi
inc edi
inc esi
jmp cadena
salir_cadena:
;
; Se recuperan los registros y se retorna.
;
pop es
popad
ret
;
; La rutina clrscr no merece demasiados comentarios. Completa la
; pantalla con espacios y con atributos de color de letras blancas y
; fondo negro. Esta rutina no recibe ningún parámetro.
;
clrscr:
push ds
mov ax,18h
mov ds,ax
mov edi,0b8000h
mov cx,80*25*2/4
mov eax,07000700h
clrscr1:
mov [edi],eax
add edi,4
dec cx
jnz clrscr1
pop ds
ret
;
; La siguiente función imprime el valor de eax en la pantalla en la
; posición indicada por edi.
;
mostrar_valor:
;
; Primero se guardan los registros que se van a utilizar. En ds se
; carga el segmento flat para poder acceder a la memoria de video.
;
push ds
pushad
mov bx,18h
mov ds,bx
;
; Se verifica que la dirección a imprimir sea par y menor a 4096. Luego
; se suma el desplazamiento, para que apunte a la memoria de video.
;
and edi,0FFEh
add edi,0b8000h
;
