• Domingo 22 de Diciembre de 2024, 18:58

Autor Tema:  Ayuda Con Novato Fecha Y Hora En La Pc  (Leído 14160 veces)

osw

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Ayuda Con Novato Fecha Y Hora En La Pc
« en: Domingo 15 de Agosto de 2004, 02:30 »
0
Hola a todos bueno disculpen si cometo unas burradas soy nuevo y necesito ayuda en el ensamblador  ;)  bueno toy enpesando un curso asi que parece que nos veremos seguido en aca en este foro

el problema que tengo amigos es el siguiente ni bien entre ah claces me piedieron

1 ) mostrar en pantalla la fecha hora,minuto del sistema osea mediante el ensamblador sacar de la pc fecha hora,minuto
2) y el otro modificarlo fecha hora,minuto  ese mismo

y yo tengo nociones basicas puedo hacer unas cuentas cosas en el ensamblador pero no se como enpesar en estos ejercicion y necesito ayuda si me lo pusieran paso a paso seria mejor gracias de ante mano    :P

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Ayuda Con Novato Fecha Y Hora En La Pc
« Respuesta #1 en: Lunes 16 de Agosto de 2004, 16:43 »
0
Primero aconsejo que busques un Tutorial de asembler.

Despues:
paraplataforma DOS(MS)
la interrupcion int 21h, con las siguientes funciones

AH = 2ah: lee fecha del sistema(CX=año; DH=mes; DL=dia)

AH = 2bh: Establece fecha del sistema(CX=año; DH=mes; DL=dia)

AH = 2ch: Leer hora del sistema(CH=hora; CL=min; DH=seg)

AH = 2dh: Establece hora del sistema(CH=hora; CL=min; DH=seg)

osw

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Ayuda Con Novato Fecha Y Hora En La Pc
« Respuesta #2 en: Lunes 23 de Agosto de 2004, 02:45 »
0
gracias bueno si me consegui u manual como dijiste pero entiendo que esa es la interrupcion pero
MOV ah,2cH
      INT 21H
pero con lo respecto a

CH=hora; CL=min; DH=seg


no entiendo tengo que poner mov ch,[pero que pongo aca]

podrias ser mas especifico porfavor :(

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Ayuda Con Novato Fecha Y Hora En La Pc
« Respuesta #3 en: Lunes 23 de Agosto de 2004, 10:20 »
0
No tienes que mover nada a ch.
Cuando ejecutas:
mov ah,2ch
int 21
El resultado se obtiene en ch,cl,dh. Es decir en ch ya tienes la hora del sistema y puedes trabajar con ella.

Ahora bien, para cambiar la hora del sistema necesitas los datos de hora,minutos, segundos.Y entonces si tendrás que mover a ch,cl,dh los datos correspondientes para que al ejecutar:

mov ah,2dh
int 21

Los datos nuevos pasen al sistema.
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Ayuda Con Novato Fecha Y Hora En La Pc
« Respuesta #4 en: Lunes 23 de Agosto de 2004, 20:23 »
0
Eso mismo.

Sr. ASM

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Ayuda Con Novato Fecha Y Hora En La Pc
« Respuesta #5 en: Miércoles 1 de Septiembre de 2004, 20:49 »
0
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
___________________________________________________

Nada esta dicho hasta el final.
Tenemos tiempo para aprender cada vez un poquito más
___________________________________________________

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Ayuda Con Novato Fecha Y Hora En La Pc
« Respuesta #6 en: Lunes 6 de Septiembre de 2004, 20:29 »
0
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 


eso es cierto y muy importante ya que asi tenemos un buen resultado.

Logan

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Ayuda Con Novato Fecha Y Hora En La Pc
« Respuesta #7 en: Viernes 17 de Septiembre de 2004, 17:52 »
0
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:
Estamos aqui porque jamás terminaremos de aprender....