Hi, guest ! welcome to seluruhberita.blogspot.com. | About Us | Contact | Pasang Iklan | Sign In

Contoh Program Assembler(Penampil Jam)

.MODEL SMALL
 .STACK 100H

 .DATA
   TAMPIL  DB  'Sekarang pukul : $'    
   WAKTU   DB  '00:00:00$'        ; formatnya jam:min:sec

 .CODE
   MAIN PROC
     MOV AX, @DATA                ;  inisialisasi DS
     MOV DS, AX

     LEA BX, WAKTU                ; BX=offset address of string WAKTU

     CALL AMBILWAKTU        ;

     LEA DX, TAMPIL               ;
     MOV AH, 09H                     ; print string TAMPIL
     INT 21H                     

     LEA DX, WAKTU                ;
     MOV AH, 09H                      ; print string WAKTU
     INT 21H                     

     MOV AH, 4CH                     ; interup 21h servis 4c
     INT 21H
   MAIN ENDP

   AMBILWAKTU PROC
  
    PUSH AX                       ;
    PUSH CX                       ;

    MOV AH, 2CH               ; servis untuk ambil waktu sistem
    INT 21H                      

    MOV AL, CH                  ; set AL=CH , CH=jam yang didapatkan
    CALL KONVERSI          ; konversi ke ascii
    MOV [BX], AX                ; set [BX]= jamny  , [BX] menunjuk ke jam dalam string WAKTU

    MOV AL, CL                    ; set AL=CL , CL=menit
    CALL KONVERSI           ; call  procedure KONVERSI
    MOV [BX+3], AX             ; set [BX+3]=menit  , [BX] menunjuk ke menit dalam string WAKTU

                                                                         
    MOV AL, DH                    ; set AL=DH , DH=detik
    CALL KONVERSI            ; call procedure KONVERSI
    MOV [BX+6], AX             ; set [BX+6]=detik  ,
                                                     
    POP CX                        ;
    POP AX                        ;

    RET                               ;
   
   AMBILWAKTU ENDP                ;


    KONVERSI PROC
    ; konversi dari binary ke ASCII
    ; input : AL=binary
    ; output : AX=ASCII

    PUSH DX                       ;
    MOV AH, 0                     ;
    MOV DL, 10                    ;
    DIV DL                            ;
    OR AX, 3030H                ; konversi dilakukan dari binary dalam  AX ke ASCII

    POP DX                        ;

    RET                               ; 
   
   KONVERSI ENDP        ;

 END MAIN

Share this article now on :