BAHASA ASSEMBLER LENGKAP

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
D7
D6
D5

D4
D3
128 + 64
D7
D6

32 + 16
D5
D4

8
D3

+ 4 + 2 +
1
D2
D1
D0
+ 4
D2


2 +
D1

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
mov al,80h

mov dx,cw
out dx,al

1
D0

=255

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 al,60

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)
.MODEL SMALL
.STACK 100H

.DATA
TAMPIL DB 'Sekarang pukul : $'
WAKTU DB '00:00:00$'
; formatnya jam:min:sec
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX

; inisialisasi DS

LEA BX, WAKTU


; BX=offset address of string WAKTU

CALL AMBILWAKTU

;

LEA DX, TAMPIL
MOV AH, 09H
INT 21H

;
; print string TAMPIL

LEA DX, WAKTU
MOV AH, 09H
INT 21H

;
; print string WAKTU


MOV AH, 4CH
INT 21H
MAIN ENDP

; interup 21h servis 4c

AMBILWAKTU PROC
PUSH AX
PUSH CX

;
;

MOV AH, 2CH
INT 21H

; servis untuk ambil waktu sistem

MOV AL, CH

CALL KONVERSI
MOV [BX], AX
string WAKTU
MOV AL, CL

; set AL=CH , CH=jam yang didapatkan
; konversi ke ascii
; set [BX]= jamny , [BX] menunjuk ke jam dalam
; set AL=CL , CL=menit

CALL KONVERSI
MOV [BX+3], AX
string WAKTU

; call procedure KONVERSI
; set [BX+3]=menit , [BX] menunjuk ke menit dalam

MOV AL, DH
CALL KONVERSI
MOV [BX+6], AX


; set AL=DH , DH=detik
; call procedure KONVERSI
; 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
).

BXthe 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

Contoh gambar register.

Table MOV