Red de conocimiento informático - Consumibles informáticos - Título.

Escribe un lenguaje ensamblador para una cuenta regresiva de 60 segundos.

Título.

Escribe un lenguaje ensamblador para una cuenta regresiva de 60 segundos.

;filename.asm

segmento de pila ;Definir la pila del segmento de pila

db 100 dup(?) ;Asignar el tamaño del segmento de pila

fin de la pila; fin del segmento de la pila

segmento de datos; definir datos del segmento de datos

IN_BUF: db 100 dup(0); : db 0 ;registro de tiempo de 60 segundos

SEC_1: db 0

Stop_Flag:db 0

final de datos ;fin del segmento de datos

segmento de código ' code' ;Definir el segmento de código

asuume cs:code,ds:data,ss:stack;Determinar el segmento lógico al que apunta CS/DS/SS

start : mov ax,ss

mov sp,ax

mov ax,data ;Establece la dirección de segmento DS del segmento de datos

mov ds,ax

;.. ............ ;Código de programa

mov SEC_60,60

mov SEC_1,0

mov Stop_Flag,0

mov ah,2ch

int 21h

mov SEC_1,dh

;---

bucle:

mov ah,1

int 16h

jnz loop1

mov ah,0

int 16h

mov al,Stop_Flag

inc al

and al,1

mov Stop_Flag,al

bucle1:

mov al,Stop_Flag

o al,1

jnz loop

mov ah,2ch

int 21h

mov al,SEC_1

cmp al,dh

jz loop

mov SEC_1,dh

mov al,SEC_60

dec al

jnz loop

;---

mov ax, 4c00h

;Volver a DOS

int 21h

finaliza el código ;Fin del segmento de código

;............ ;Código de subrutina

end start ;La compilación finaliza, el punto de inicio del programa es el inicio