Programación General > ASM (Ensamblador)
Ayuda Con Novato Fecha Y Hora En La Pc
Sr. ASM:
Pido que consideren que si se quiere visualizar por pantalla se hara con la informaciòn en formato ASCII, lo que convendrìa alterar para visualizar un numero que refleje la informaciòn adecuada
Saludos
Super_G:
--- Citar ---Sr. ASM
Pido que consideren que si se quiere visualizar por pantalla se hara con la informaciòn en formato ASCII, lo que convendrìa alterar para visualizar un numero que refleje la informaciòn adecuada
Saludos
--- Fin de la cita ---
eso es cierto y muy importante ya que asi tenemos un buen resultado.
Logan:
Hola a todos:
Aqui les dejo este programa que muestra la fecha del sistema dd/mm/aa.
Para mostrar la hora podemos emplear el mismo programa con algunas modificaciones (funcion que devuelve la hora y registros que almacenan los datos) ya que las horas, minutos y segundos se pueden mostrar en la misma forma que este programa muestra los dias y meses.
El año se muestra con un procedimiento diferente.
Espero que le pueda servir a OSW.
;Programa que muestra la fecha del sistema
pila segment para stack 'stack '
dw 64 dup(' ')
pila ends
datos segment para public 'data'
dia db 0
mes db 0
anio dw 0
n1 db 0
n2 db 0
n3 db 0
n4 db 0
res dw 0
mil dw 1000
cien dw 100
diez dw 10
datos ends
codigo segment
assume ss:pila,ds:datos,cs:codigo
mensage macro x
mov ah,06h
mov dl,x
int 21h
endm
inicial proc
mov ax,datos
mov ds,ax
mov ah,2AH ;funcion que devuelve la fecha
int 21h
mov dia,dl ;movemos el valor del dia a una variable
mov mes,dh
mov anio,cx
; ********* Obtencion y despliegue del dia *********
mov al,dia ;cl obtiene la hora y se transiere a al
aam ;ax se convierte a BCD
add al,'0' ;convertimos AL en ASCII
mov n2,al ;movemos la parte baja de AX a n2
add ah,'0' ;convertimos AH en ASCII
mov n1,ah ;movemos la parte alta de AX a n1
mensage n1
mensage n2
mensage '/'
; ********* Obtencion y despliegue del mes *********
mov al,mes
aam ;ax se convierte a BCD
add al,'0' ;convertimos AL en ASCII
mov n2,al ;movemos la parte baja de AX a n2
add ah,'0' ;convertimos AH en ASCII
mov n1,ah ;movemos la parte alta de AX a n1
mensage n1
mensage n2
mensage '/'
; ********* Obtencion y despliegue del a¤o *********
mov ax,anio ;movemos el valor del año a ax
cwd ;convertirmos ax en doble palabra (es indispensable para realizar esta división)
div mil ;dividimos ax entre mil=1000, AX almacena el cociente y DX el residuo
aam ;ax es convertido a BCD
mov res,dx ;se lamacena el residuo que esta en dx a la variable RES
add al,'0' ;convertimos a ASCII la parte baja de aX que contiene el valor del residuo despues de convertirse en BCD
mov n1,al ;movemos el residuo a N!
mensage n1 ;mostramos el valor del residuo que es el promer numero del año
;mostramos el segundo numero del año
mov ax,res
cwd
div cien
aam
mov res,dx
add al,'0'
mov n1,al
mensage n1
;mostramos el tercer numero del año
mov ax,res
cwd
div diez
aam
mov res,dx
add al,'0'
mov n1,al
mensage n1
;mostramos el cuarto y ultimo numero del año
mov ax,res
aam
add al,'0'
mov n1,al
mensage n1
mov ah,4ch
int 21h
inicial endp
codigo ends
end inicial
Saludos :lightsabre:
Navegación
[*] Página Anterior
Ir a la versión completa