Ejemplo 3


.286
.MODEL tiny

CODIGO      SEGMENT PUBLIC
            ASSUME CS:CODIGO,DS:CODIGO,ES:CODIGO,SS:CODIGO
            ORG 100H
INICIO:
            MOV AH, NUMERO  ; Carga el contenido de NUMERO en 
                            ; en el registro AH
            LEA BX, TABLA   ; Carga la dirección de la etiqueta
                            ; TABLA en BX
            LEA DI, MENSAJE ; Carga la dirección de la etiqueta
                            ; MENSAJE en DI
            MOV AL, AH      ; Carga el contenido de AH en AL
            SHR AL, 4       ; Desplaza a la derecha el contenido
                            ; de AL rellenando con 0 por la izquierda
            XLAT            ; AL <-- [BX+AL] 
                            ; Traduce el valor numérico al carácter
                            ; Hexadecimal adecuado
            MOV [DI], AL    ; Lo guarda para luego imprimir

            MOV AL, AH      ; Carga el contenido de AH en AL
            AND AL, 0FH     ; Se queda con la parte baja de AL
            XLAT            ; AL <-- [BX+AL]
                            ; Traduce el valor numérico al carácter
                            ; Hexadecimal adecuado         
            INC DI          ; Apunta al siguiente carácter 
            MOV [DI], AL    ; Lo guarda para luego imprimir

            LEA DX, MENSAJE ; Impresión de un mensaje como en el 
                            ; eje2.asm
            MOV AH, 09H
            INT 21H
            INT 20H

MENSAJE:    DB '00$'
NUMERO      DB 123
TABLA:      DB '0123456789ABCDEF'

CODIGO      ENDS
            END INICIO