Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    [ASM] Settaggio orario di sistema

    Ho creato un programma che attraverso la funzione 2dh dell'int 21h mi permette di modificate l'orario di sistema (ricordo che stp con windows xp e i programmi li assemblo e tutto con TASM).

    Adesso io avevo creato un programma che mo modifica anche la data (funzione 2bh INT 21h) e una volta eseguito il programma, inseriti i valori e tutto, andando a vedere la data questa cambia effettivamente, invece l'orario (che sta in basso a dx sulla barra delle applicazioni) nn me lo modifica per niente, eppure ho di ritorno nel registro al 00h, che indica il settaggio avvenuto con successo...come posso risolvere???


    Se volete vedere il programma, eccolo:
    codice:
    data segment
        mes db 10,13,'Modifca dell',27h,'ora di sistema',10,13,'$'
        mes2 db 10,13,'Ricordiamo che nell',27h,'inserimento di ore, 
    minuti e secondi, quando si vuole',10,13,'$'
        mes3 db 'inserire un',27h,'ora, un minuto o un secondo a una cifra, per esempio 7, 
    bisogna$'
        mes4 db 'inserire prima il valore 0, e poi il numero che si 
    vuole inserire.',10,13,'$'
        ora db 10,13,'Inserisci le ore (es. 21) : $'
        minuti db 10,13,'Inserisci i minuti (es.06) : $'
        secondi db 10,13,'Inserisci i secondi (es. 54) : $'
        error db 10,13,'Il valore inserito ',8ah,' errato...ripetere 
    l',27h,'inserimento',10,13,'$'
        parametro dw ?
        hour db ?
        minutes db ?
        seconds db ?
    data ends
    
    code segment
        assume ds:data,cs:code
    inizio:
        mov ax,data
        mov ds,ax
        mov ax,0003h
        int 10h
        mov ah,09h
        lea dx,mes
        int 21h
        lea dx,mes2
        int 21h
        lea dx,mes3
        int 21h
        lea dx,mes4
        int 21h
        call inserisci_ora
        call inserisci_minuti
        call inserisci_secondi
        mov ah,2dh
        mov ch,hour
        mov cl,minutes
        mov dh,seconds
        mov dl,0
        int 21h
        mov ax,4c00h
        int 21h
    
    ; ******************************************
    ; *       INSERIMENTO ORA (ES. 21)         *
    ; ******************************************
    	
    inserisci_ora proc near
    in_ora:
        mov ah,09h
        lea dx,ora
        int 21h
        xor cx,cx
        mov parametro,000ah
        call somma_valori
        mov parametro,0001h
        call somma_valori
        cmp cl,17h
        ja errore1
        jmp oraok
    errore1:
        mov ah,09h
        lea dx,error
        int 21h
        jmp in_ora
    oraok: 
        mov hour,cl
        ret
    inserisci_ora endp
    
    ; ******************************************
    ; *     INSERIMENTO MINUTI (ES.06)         *
    ; ******************************************
    
    inserisci_minuti proc near
    in_minuti:
        mov ah,09h
        lea dx,minuti
        int 21h
        xor cx,cx
        mov parametro,000ah
        call somma_valori
        mov parametro,0001h
        call somma_valori
        cmp cl,3bh
        ja errore2
        jmp minutiok
    errore2:
        mov ah,09h
        lea dx,error
        int 21h
        jmp in_minuti 
    minutiok: 
        mov minutes,cl
        ret
    inserisci_minuti endp
    
    ; ******************************************
    ; *     INSERIMENTO DEI SECONDI (ES.54)    *
    ; ******************************************
    
    inserisci_secondi proc near
    in_secondi:
        mov ah,09h
        lea dx,secondi
        int 21h
        xor cx,cx
        mov parametro,000ah
        call somma_valori
        mov parametro,0001h
        call somma_valori
        cmp cl,3bh
        ja errore3
        jmp secondiok
    errore3:
        mov ah,09h
        lea dx,error
        int 21h
        jmp in_secondi 
    secondiok: 
        mov seconds,cl
        ret
    inserisci_secondi endp
    
    ; ******************************************
    ; *         SOMMATORIA VALORI              *
    ; ******************************************
    
    somma_valori proc near
        mov ah,01h
        int 21h
        sub al,30h
        mov ah,0
        mov bx,parametro
        mul bx
        add cx,ax
        ret
    somma_valori endp
    
    code ends
    
    end inizio

  2. #2
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    secondo me è proprio windows xp il problema.

    infatti c'è una funzione che prende l'ora da internet e la salva sull'orario di sistema.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.