CONTOH PROGRAM UNIK ASSEMBLER MENHIDUPKAN LED .
1. Hidupkan LED dari D7-D0
2. Hidupkan LED dari tengah ke kiri dan ke kanan 2-2 bit 3. Hidupkan LED 5 dan 8.
Jawab :
Konsep kita harus mempunyai simulasi LED contoh seperti dibawah ini.
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 128 64 32 16 8 4 2 1
D7 D6 D5 D4 D3 D2 D1 D0
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 =255 D7 D6 D5 D4 D3 D2 D1 D0
128 + 64 32 + 16 8 + 4 2 + 1 D7 D6 D5 D4 D3 D2 D1 D0 128+64+2+1= 195
32+16+8+4 = 60
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 128 64 32 16 8 4 2 1
D7 D6 D5 D4 D3 D2 D1 D0 128 + 16 =144
Contoh Program :
Mulai
Putar
mov al,255 mov dx,port a out dx,al
call delay
mov al,255 mov dx, port b out dx,al
call delay
mov al,255 mov dx,port c out dx,al
call delay
mov al,195 mov dx,port a out dx,al
call delay
mov al,195 mov dx,port b out dx,al
call delay
mov al,195 mov dx,port c out dx,al
call delay
mov al,60 mov dx,port a out dx,al
call delay
mov dx,port b out dx,al
call delay
mov al,60 mov dx,port c out dx,al
call delay
mov al,144 mov dx,port a out dx,al
call delay
mov al,144 mov dx,port b out dx,al
call delay
mov al,144 mov dx,port c out dx,al
call delay
jmp putar
Jadi LED akan hidup dari kiri ke kanan ( D7-D0 ) kemudian
hidupkan LED dari kiri ke kanan dengan 2bit-2bit dilanjutkan lagi menghidupkan LED pada LED5 dan LED8
link sumber ^_^ http://fajar-el-ridikc.blogspot.com/#ixzz3SArLkRt3
Contoh Program Assembler(Penampil Jam)
.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
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
CPU 8086 mempunyai 8 general purpose register, dimana tipa register mempunyai namanya sendiri- sendiri :
AX-the accumulator register (dibagi menjadi AH/AL
).
BX-the base address register (dibagi menjadi BH/BL
).
CX
-the count register ( dibagi menjadi DH/DL
).
SI
-source index register.
DI
-destination index register.
BP
-base pointer.
SP
-stack pointer
http://www.academia.edu/4993047/Assembly_ringkasan_for_mid_semester_3