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
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