; Inicio del programa, definimos el modelo de memoria a usar y el segmento
; de codigo
.MODEL SMALL ; Modelo de memoria
.CODE ; Area de codigo
BEGIN: ; Etiqueta de inicio del programa
MOV AX,@DATA ; Inicializa el registro DS con la direccion dada
MOV DS,AX ; por @DATA (Segmento de datos).
MOV DX, OFFSET Titulo ; Obtiene la direccion de la cadena de caracteres
MOV AH,09 ; Usamos la funcion 09H de la interrupcion 21H
INT 21H ; para desplegar la cadena cuya direccion obtuvimos.
MOV CX,16 ; Contador de caracteres que se mostrarán
MOV BX, OFFSET Cadena ; Permite acceso a la cadena donde se encuentran los
; valores a desplegar
Ciclo: ; Etiqueta para generar un ciclo
MOV AL,CL ; Coloca en AL el numero a traducir y lo traduce
XLAT ; usando la instruccion XLAT
MOV DL,AL ; Coloca en DL el valor a ser desplegado por medio de la
MOV AH,02 ; funcion 2 de la interrupcion 21H
INT 21H ; Despliega el caracter
MOV DL,10 ; Salta una linea desplegando el caracter 10
INT 21H ; Despliega el caracter
MOV DL,13 ; Produce un retorno de carro desplegando el caracter 13
INT 21H ; Despliega el retorno de carro
LOOP Ciclo ; Decrementa en uno a CX y brinca a la etiqueta Ciclo
; siempre y cuando CX no sea igual a cero
MOV AH,4CH ; Utiliza la funcion 4C de la interrupcion 21H para
INT 21H ; finalizar el programa
; Inicio del segmento de datos
.DATA ;Define el segmento de datos
Titulo DB 13,10,'Lista de numeros hexadecimales del 0 al 15'
DB 13,10,'$' ; Cadena a desplegar al inicio del programa
Cadena DB ' FEDCBA9876543210' ; Cadena con los digitos hexadecimales
; Declaracion del segmento de la pila
.STACK
END BEGIN ;Declaracion del final del programa
Comentarios sobre la versión: Versión 1 (1)
gracias,