2/18/2010

asm

## konsep dasar micro:
- Register - internal rom
- acumulator - stack pointer
- program counter - i/o ports
- Alu - interups circuit
- clook circuit - internal ram


# register: tempat penyimpanan variabel bilangan bulat yang terdiri dari 8 bit atau 16 bit
# reaister khusus: fungsi khusus, seperti register timer yang berisi data penghitungan pulsa untuk timer / pengantar mode operasi konter.
# register umum: operasi arit matika atau logika hanya pada satu atau dua operand
# accumulator: salah satu register khusus, berfungsi sebagai operand umum untuk memproses arit matika dan logika.
# program counter: berfungsi sebagai pencacah atau penghitung eksekusi program microkontroller.
# Alu: proses arit matika (+-/*) dan operasi logika (and, or, xor, not)terhadap bilangan bulat 8 atau 16 bit
# clook circuit: rangkain logika sekuensial (berurut) proses kerja berjalan melalui sinkronisasi clook.
# rom(read only memory): bersifat tetap hanya dapat di baca dan tidak dapat di ubah atau di hapus(bios)
# stock pointer: bagian dari ram metode penyimpanan dan pengambilan data secara khusus.
# I/O ports: sarana microkontroller untuk mengakses peralatan di luar dari sistem I/O port berupa PIN-PIN
# Internal RAM(Random Acses Memory): penyimpan data, berisi data2 variabel dan register bersifat sementara.


### konsep dasar register: memory yang sangat cepat yang berfungsi sebagai tempat operand2 dari operasi yang akan di lakukan oleh user.
### register lokasi memory yang sangat khusus terkonstruksi dari flip-flop-flip-flop (proses sangat cepat)
### jenis-jenis register:
- data register 16 bit(AX,BX,CX,DX) dan 8 bit(AH,AL,BH,BL,CH,CL,DH,DL)
- segmen register(cs, ds, ss, es)
- index register (sI,dI,Ip)
- pointer register (Ip,SP)
- flag register over low, directoin, interupt, terap, sign, zero, auxiliary carry.
- register untuk alamat dan buffer.
- register untuk exsikusi interuksi
- interkoneksi






# program assembler.
program led.
$mod51
org 0h
mulai: mov p1,#00001111b
accal dilay
mov p1, #11110000b
accal dilay
sjmp mulai
delay: mov R0,#5h
delay1: mov R1, #0ffh
delay2: mov R2, #0
djnz R2,$
djnz R1, delya= R1=R1-1
djnz R0, delay
ret
end

# program
$mod51
org 0h
mulai: mov A, p1
cjne A, #0ffh, mulai1
mov p0,#0
sjmp mulai
mulai1:
cjne A, # 0fdh, mulai
mov p0,#0ffh
sjmp mulai
end


# program
$mod51
org 0h
mulai: mov A, p3
cjne A,#0feh, mulai = apakah tombol p3.0 di tekan (=11111110) tidak! ulangi dari awal.
cjne R0,#0,terus= ya! R0=0 lampu sedang mati, tidak loncat ke proses terus
tunggu: mov A, p3
cjne A, #0ffh, tunggu
sjmp mulai
terus: mov R0, #0
mov p1,# 0ffh
sjmp tunggu
end


-