assembly wk 01
TRANSCRIPT
-
8/19/2019 Assembly Wk 01
1/49
1
OLEH :
EPYK SUNARNO
JURUSAN TEKNIK ELEKTRO INDUSTRI
POLITEKNIK ELEKTRONIKA NEGERI SURABAYAINSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
2007
B A H A S A A S S E M B L Y
Untuk Semester !
S"#$t %$&"'
J$m(M"n))u ! J$m
-
8/19/2019 Assembly Wk 01
2/49
2
BAB I. PENDAHULUAN
1.1. Perbedaan MIKROPROSESSOR dan
MIKROKONTROLLER ======================================
MIKROPROSESSOR
Adalah sebuah single chip yang hanyaberisi CPU ( Central Prcessing Unit !.
Untu" #e#bentu" sebuah #ini#u# siste##i"r"#puter dari sebuah #i"rprsessr
#asih dibutuh"an peralatan pendu"ung$%A& ( %and# Acces &e#ry !
%'& (%ead 'nly &e#ry !
I' ( Unit Input 'utput !
-
8/19/2019 Assembly Wk 01
3/49
3
MIKROKONTROLLER
Adalah sebuah single chip yang di dala#)
nya sudah berisi
) CPU ( Central Prcessing Unit !) %A& (%and# Acces &e#ry!
) %'& (%ead 'nly &e#ry!
) I' (Unit Input 'utput!
) *i#erCunter + ,erial C'& Prt.
-
8/19/2019 Assembly Wk 01
4/49
4
Data Bus (-!
Address Bus (1!
Bl" Diagra# &I/%'P%',E,,'%
CPU %A& %'& I'Prt
-
8/19/2019 Assembly Wk 01
5/49
5
Bl" Diagra# &I/%'/'N*%'LLE%
CPU
%A&
%'&
I' Prt,erial Prt*i#erCunter
-
8/19/2019 Assembly Wk 01
6/49
6
&i"rprsessr diprdu"si #ulai 0 th 121dng INTEL yang prdu"sinya type µP
8080
,elan3utnya per"e#bangan µP :• &trlla -44
• %CA 1-41
• &', *echnlgy -546• 7ilg 7-4
-
8/19/2019 Assembly Wk 01
7/49
7
&i"r"ntrller diprdu"si #ulai
0 tahun 12 dengan INTEL yang
prdu"sinya type -28 ( &C,)8-!yang di dala#nya sdh ada 1 /Byte
EP%'&+ 8 Byte %A&+ 62 I' dan -
bit *i#er
-
8/19/2019 Assembly Wk 01
8/49
8
*ype %'& %A& I'
-451
-451AH-456AH
-4C51BH
-9C51:A
-9C51:B
8 / Byte
8 / Byte8 / Byte
8 / Byte
8 / Byte
8 / Byte
16- Byte
16- Byte65 Byte
16- Byte
65 Byte
65 Byte
8 ; - Bit
8 ; - Bit8 ; - Bit
8 ; - Bit
8 ; - Bit
5 ; - Bit
/eluarga &i"r"ntrler &C,)51
-
8/19/2019 Assembly Wk 01
9/49
9
-
8/19/2019 Assembly Wk 01
10/49
10
Deskripsi PIN pada MCS-51
No.Pi
Na!a Pi "#ter
ati$
%etera&a
20 'ND 'ro(d
40 )CC Po*er S(pp#+
32 ... 39 P0.7 ,.P0.0 D7 . D0
"7 .. "0
Port 0 dapat er$(&si s& I/ iasa loworder multiplex addres/data
1 , 8 P1.0 ,. P1.7 Port 1 ada#a port para##e# 8 it d(aara idiretioa# +a& dapatdi&(aka (t(k era&ai keper#(a &eera# p(rpose I/
21 , 28 P2.0 ,.. P2.7 "8 .. "15 Port 2 Port 2 er$(&si sea&ai Ioiasa ata( i& order address pada saat!e&akses !e!or+ seara 16 it
M/) DP
-
8/19/2019 Assembly Wk 01
11/49
11
No.Pi
Na!aPi
"#ter
ati$
%etera&a
10 , 17 P/ 3 "da#a port para#e# 8 it d(a ara +a&!e!i#iki $(&si pe&&ati sea&ai erik(t
10
11
12
13 14
15
16
17
P3.0
P3.1
P3.2
P3.3 P3.4
P3.5
P3.6
P3.7
D
D
IN0
IN10
1
:
D
Port Seria# Ip(t
Port Seria# /(tp(t
Port ;
-
8/19/2019 Assembly Wk 01
12/49
12
No.Pi
Na!aPi
"#ter
ati$
%etera&a
29 PS;N "da#a pi PS;N Pro&ra! Store ;a#e>a& !er(paka si+a# pe&otro# +a&!e!o#eka pro&ra! !e!or+ ekstera#!as(k keda#a! (s se#a!a prosespe!eriape&a!i#a itr(ksi $eti&
31
;"
Pada kodisi =/: pi ii aka er$(&sis& ;" ;a#e "ddress +ait(!ikrokotro##er aka !e?a#aka pro&ra!+a& ada pada !e!or+ ekstera# sete#asiste! di ;S;
19 "=1 Ip(t /si#ator
18 "=2 /(tp(t /si#ator
-
8/19/2019 Assembly Wk 01
13/49
13
1.2. Sistem Bilangan
• ,iste# bilangan DE,I&AL• ,iste# bilangan BINE%
• ,iste# bilangan '/*AL
• ,iste# bilangan HE/,ADE,I&AL
-
8/19/2019 Assembly Wk 01
14/49
14
1.6.1. ,iste# bilangan BINE%
- Bilangan BINE% adalah bilangan berbasis 6- La#bang bilangannya 4 dan 1- ,iste# bilangan ini dipa"ai pada siste#
#i"r"ntrler.- Cnth "n
-
8/19/2019 Assembly Wk 01
15/49
15
1.6.6. ,iste# bilangan '/*AL
- Bilangan '/*AL adalah bilangan berbasisi -
- La#bang bilangannya 4+ 1+ 6+ 9+ 8+ 5+ dan 2- Cnth "n
-
8/19/2019 Assembly Wk 01
16/49
16
1.6.9. ,iste# bilangan HE/,ADE,I&AL
- Bilangan dengan dasar 1
- La#bang bilangannya $4+ 1+ 6+ 9+ 8+ 5+ + 2+ -+ + A+ B+ C+ D+ E dan :
- Cnth "n
-
8/19/2019 Assembly Wk 01
17/49
17
BAB II.PE%AN=/A* LUNA/
&I/%'/'N*%'LE% &C,)51
6.1. Pendahuluan
• ,ebuah #i"r"ntrler tida" a"an
dapat be"er3a bila tida" diberi"an
prgra# "epadanya.• ,iste# "er3a #i"r"ntrler dapat
dirubah setiap saat sesuai dengan
prgra# yang diberi"an "epadanya.
-
8/19/2019 Assembly Wk 01
18/49
18
• Instru"si)instru"si perang"at luna" berbeda
untu" #asing)#asing 3enis #i"r"ntrller.
• ,ebuah #i"r"ntrler tida" dapat#e#aha#i instru"si)instru"si yang berla"u
pada #i"r"ntrler 3enis lain.
Cnth$ &i"r"ntrler buatan Intel dengan
#i"r"ntrler buatan 7ilg #e#ili"i
perang"at instru"si yang berbeda• Instru"si)instru"si pada #i"r"ntrler
di"enal sebagai bahasa pe#rgra#an siste#
#i"r"ntrler
-
8/19/2019 Assembly Wk 01
19/49
19
6.6. 'perand dan E"spresi
Asse#bler
a. Opean!
@et(k (!(! se!(a istr(ksi da#a!asse!#er Ite# dapat dit(#iska sea&ai
erik(t
>LABEL$? &NE&'NIC >'PE%AND? >'PE%AND? >'PE%AND? >@/'&EN*A%?
-
8/19/2019 Assembly Wk 01
20/49
20
A(!#a operad ter&at(& pada t+pe!e!oi. Se!(a operad dapat dia&i
da#a! 6 ke#o!pok +ait(
1. Si!o# %(s(s "sse!#er
2. Pe&a#a!ata ak =a&s(&
3. Pe&a#a!ata =a&s(& I!!ediate
Data
4. Pe&a#a!ata Data
5. Pe&a#a!ata @it
6. Pe&a#a!ata %ode
7. /perator "sse!#er
-
8/19/2019 Assembly Wk 01
21/49
21
• Si!o# %(s(s "sse!#er
"sse!#er te#a !e+ediaka eerapa si!o#(t(k !e(?(kka re&ister tertet( sea&aioperad.
Coto
" "k(!(#ator
0 ,. 7 e&ister Sera&(a
DP Data Poiter e&ister 16 @it
PC Pro&ra! Co(ter C Carr+ B#a&
@ e&ister @
-
8/19/2019 Assembly Wk 01
22/49
22
• Pe&a#a!ata ak =a&s(&
/perad pe&a#a!ata tak#a&s(& !e(?(k ke se(a
re&ister +a& erisi #okasi a#a!at
!e!or+ +a& aka di&(akada#a! operasi.
=okasi +a& +ata ter&at(&
pada isi re&ister saat istr(ksi
di?a#aka.
-
8/19/2019 Assembly Wk 01
23/49
23
• Pe&a#a!ata ak =a&s(&
t(k !e#aksaaka pe&a#a!ata
tak #a&s(& di&(aka si!o#
Coto
M/) "1
M/) 0"
M/) 124
-
8/19/2019 Assembly Wk 01
24/49
24
• Pe&a#a!ata ak =a&s(&
Pe&a#a!ata tak #a&s(& Idiret iiiasa di&(aka (t(k !e#ak(kape(#isa pe!idaa ata(
pe!aaa eerapa data da#a! #okasi!e!ori +a& !e!p(+ai (r(taerat(ra.
Aika proses ii di#ak(ka de&a
!e&&(aka pe&a#a!ata #a&s(& ?(!#aaris pro&ra! +a& diper#(ka aka (k(ppa?a&.
-
8/19/2019 Assembly Wk 01
25/49
25
• Pe&a#a!ata ak =a&s(&
Coto+a pe(#isa data 08 pada a#a!at50 i&&a 57.
=isti& a.1
/' 0
M/) 50E08M/) 51E08
M/) 52E08
M/) 53E08
M/) 54E08M/) 55E08
M/) 56E08
M/) 57E08
;ND
-
8/19/2019 Assembly Wk 01
26/49
26
• Pe&a#a!ata ak =a&s(&
De&a di&(aka siste! pe&a#a!ata tak#a&s(& dapat di(a !e?adi
=isti& a.2.
/' 0M/) 0E50
F
=//P M/) 0E08INC 0
CAN; 0E58=//P
;ND
-
8/19/2019 Assembly Wk 01
27/49
27
• Pe&a#a!ata ak =a&s(&
Da#a! #isti& pro&ra! a.2 diatas 0di&(aka sea&ai re&ister +a&
!e+i!pa a#a!at dari data +a& aka
dit(#iska. De&a !e#ak(ka
pea!aa pada isi 0 da
!e&(#a& perita pe(#isa data ke
a#a!at +a& dit(?(k 0 i&&a re&ister
ii !e(?(kka i#ai 57 G 1 ata(58. De&a de!ikia arisa perita
pada =isti& a.1 dapat die#i!iasi.
-
8/19/2019 Assembly Wk 01
28/49
28
• Pe&a#a!ata ak =a&s(&
MCS-51 !e!p(+ai se(a re&ister 16 it DPda d(a (a re&ister 8 it 0 da 1 +a& dapatdi&(aka (t(k !e#ak(ka pe&a#a!ata tidak#a&s(&.
Coto-oto perita +a& !e&&(aka siste!pe&a#a!ata tak #a&s(& ada#a
M/) 0" F %4 sebagai reg. penyi#pan ala#atM/) "1 F %1 sebagai reg. penyi#pan ala#at
"DD "0 F %4 sebagai reg. penyi#pan ala#at M/) DP" F DP*% sebagai reg. penyi#pan ala#atM/)C ""GDP F DP*% sebagai register
penyi#pan ala#at
-
8/19/2019 Assembly Wk 01
29/49
29
• Pe&a#a!ata =a&s(&
I!!ediate Data Proses pe&a#a!ata ii ter?adi pada se(aperita ketika i#ai operad !er(paka data
+a& aka diproses.
@iasa+a operad terse(t se#a#( dia*a#ide&a tada HE seperti pada oto erik(t.
M/) "E05
M/) "E45M/) @E0;4
M/) DPE4356
-
8/19/2019 Assembly Wk 01
30/49
30
• Pe&a#a!ata =a&s(&
I!!ediate Data /perad +a& di&(aka pada i!!ediate data ?(&a dapat er(pa i#a&a ertada !(#ai - 256i&&a G 256.
Coto M/) "E -1
sa!a de&a
M/) "E0BB
@i#a&a -1 ada#a sa!a de&a i#a&a 0dik(ra&i 1 da#a! et(k eksa i#a&a 00.Aika dik(ra&i de&a 1 asi#+a ada#a 0BB.De&a pe&ertia seperti ii i#a&a -1 dapat
dia&&ap sa!a de&a 0BB.
-
8/19/2019 Assembly Wk 01
31/49
31
• Pe&a#a!ata Data
Proses pe&a#a!ata ii ter?adi pada se(aperita ketika i#ai operad !er(paka a#a!atdari data +a& aka diisi dipidaka ata(diproses.
Coto M/) P0"
Port 0 ada#a sa#a sat( I/ pada MCS-51 +a&!e!p(+ai a#a!at 80. Perita pada oto di
atas se#ai !e&iri!ka data ak(!(#ator ke Port0 ?(&a !er(paka perita pe!idaa datadari ak(!(#ator ke a#a!at 80 sei&&a dapat ?(&a dit(#iska
M/) 80".
-
8/19/2019 Assembly Wk 01
32/49
32
6.6. %egister Pada &i"r"ntrler
&C,)51
e&ister
"da#a te!pat !e+i!pa!e&o#adata se!etara pada saat
!ikroprosessor !ikrokotro##er
eker?a.
-
8/19/2019 Assembly Wk 01
33/49
33
Pa!a M"S#$1 te!apat antaa lain:
;'IS; 8 it " "(!(#ator 3
@ 4
0 51 6
2 7
;'IS; 16 it
DP DP DP=
PC PC Pro&ra! Co(ter
-
8/19/2019 Assembly Wk 01
34/49
34
6.9. Instru"si Pe#rgra#an Pada
&i"r"ntrler &C,)51
• Pada &C,)51 #e#punyai 0 65 instru"si
pe#rgra#an yang secara garis besar dibagi
#en3adi $
1. *ranser Data
6. 'perasi Arit#ati"a
9. 'perasi Lgi"a
8. &anipulasi ariabel Blean
5. Instru"si Percabangan
-
8/19/2019 Assembly Wk 01
35/49
35
2.3.1. Istr(ksi ras$er Data
• Istr(ksi ras$er Data !e!p(+ai eraeka
ra&a! et(k +a& ereda +a& dises(aika
de&a dari!aa data terse(t erasa#
S/C; da aka ditras$er ke!aaD;SIN"I/NS.
• Istr(ksi ii !e&&(aka operad M/) +a&
tidak !e&(a isi data pada s(!er So(re
da a+a !e&kopi !e&&adaka data daris(!er So(re ke t(?(a Destiatios
%enis &enis Inst'(si Tans)e *ata
-
8/19/2019 Assembly Wk 01
36/49
36
%enis#&enis Inst'(si Tans)e *ata
a. "CCM="/ ;'IS;
Metode ii ada#a !e&kopi data dari s(at(
e&ister 0 J 7 ke "(!(#ator "
"+nt+, : &' A+%4
&' A+%1
&' A+%6
&' A+%9
&' A+%8&' A+%5
&' A+%
&' A+%2
-
8/19/2019 Assembly Wk 01
37/49
37
. ;'IS; "CCM="/
Metode ii ada#a !e&kopi data +a& erada di
"(!(#ator " ke s(at( e&ister 0 J 7
"+nt+, : &' %4+A
&' %1+A
&' %6+A&' %9+A
&' %8+A
&' %5+A&' %+A
&' %2+A
"CCM="/ D"" IMM;DI";
-
8/19/2019 Assembly Wk 01
38/49
38
. "CCM="/ D"" IMM;DI";
Metode ii ada#a (t(k !e&isi data ke da#a!
"(!(#ator " de&a data 8 it seara
#a&s(&. Pada !etode ii di&(aka tada Epada data +a& aka diisika.
"+nt+, : &' A+68H&' A+2:H
&' A+4:EH
&' A+4:-H
&' A+144
&' A+655
&' A+4::H
d ;'IS; D"" IMM;DI";
-
8/19/2019 Assembly Wk 01
39/49
39
d. ;'IS; D"" IMM;DI";
Metode ii ada#a (t(k !e&isi data ke da#a!
s(at( e&ister 0 J 7 de&a data 8 it
seara #a&s(&. Pada !etode ii di&(akatada E pada data +a& aka diisika.
"+nt+, : &' %4+68H
&' %1+2:H&' %6+4:EH
&' %9+4:-H
&' %8+144
&' %5+655
&' %+4::H
&' %2+4:H
-
8/19/2019 Assembly Wk 01
40/49
40
e. ;'IS; ;'IS;
Metode ii ada#a !e&kopi data +a& erada di
e&ister 0-7 ke s(at( e&ister 0-7 +a&#ai.
"+nt+, : &' %4+%5
&' %8+%4&' %6+%1
&' %+%6
&' %8+%2&' %5+%1
&' %9+%6
&' %2+%9
$ "CCM="/ DI;C
-
8/19/2019 Assembly Wk 01
41/49
41
$. "CCM="/ DI;C
Istr(ksi ii aka !e!idaka data dari se(a
a#a!at itera# "M ke "(!(#ator tapa !e#a#(i
re&ister #ai+a.
"+nt+, : &' A+64H
&' A+61H&' A+66H
&' A+69H
&' A+68H&' A+65H
&' A+6:H
& DI;C "CCM="/
-
8/19/2019 Assembly Wk 01
42/49
42
&. DI;C "CCM="/
Istr(ksi ii aka !e!idaka data dari
"(!(#ator ke se(a a#a!at itera# "M
tapa !e#a#(i re&ister #ai+a.
"+nt+, : &' 64H+A
&' 61H+A&' 66H+A
&' 69H+A
&' 68H+A&' 65H+A
&' 6:H+A
"CCM="/ INDI;C
-
8/19/2019 Assembly Wk 01
43/49
43
. "CCM="/ INDI;C
+pe istr(ksi ii a+a dapat !e&&(aka
re&ister 0 da 1 sea&ai poiter
"+nt+, : &' A+%4
&' A+%1
i. INDI;C "CCM="/
+pe istr(ksi ii a+a dapat !e&&(aka
re&ister 0 da 1 sea&ai poiter
"+nt+, : &' %4+A
&' %1+A
? ;'IS; DI;C
-
8/19/2019 Assembly Wk 01
44/49
44
?. ;'IS; DI;C
Istr(ksi ii aka !e!idaka data dari se(a
a#a!at itera# "M ke e&ister-re&ister +a&
erada di Mikrokotro##er.
"+nt+, : &' %4+64H
&' %1+61H&' %6+66H
&' %9+69H
&' %8+68H&' %5+65H
&' %+6H
&' %2+6:H
k DI;C ;'IS;
-
8/19/2019 Assembly Wk 01
45/49
45
k. DI;C ;'IS;
Istr(ksi ii aka !e!idaka data dari se(a
e&ister ke se(a a#a!at itera# "M +a&
erada di Mikrokotro##er.
"+nt+, : &' 66H+%4
&' 68H+%1&' 65H+%6
&' 6-H+%9
&' 6AH+%8&' 6CH+%5
&' 6DH+%
&' 6EH+%2
#. DI;C DI;C
-
8/19/2019 Assembly Wk 01
46/49
46
#. DI;C DI;C
Istr(ksi ii aka !e!idaka data dari se(a
a#a!at itera# "M ke se(a a#a!at itera#
"M ?(&a.
"+nt+, : &' 66H+64H
&' 68H+61H&' 65H+69H
&' 6-H+6H
&' 6AH+64H&' 6CH+6H
&' 6DH+6:H
&' 6EH+61H
!. DI;C D""
-
8/19/2019 Assembly Wk 01
47/49
47
!. DI;C D""
Pada istr(ksi ii aka !e&isi data pada se(a
a#a!at itera# "M seara #a&s(& de&a ara
!e!as(kka data de#apa it.
"+nt+, : &' 66H+4:EH
&' 68H+2EH&' 65H+69H
&' 6-H+:H
&' 6AH+4D5H&' 6CH+4B8H
&' 6DH+66H
-
8/19/2019 Assembly Wk 01
48/49
48
. INDI;C - D""
Pada istr(ksi +a& dipakai disii !e&&(akare&ister INDI;C sea&ai re&ister pe!roses+a
de&a diisi data seara #a&s(&.
"+nt+, :
&' %4+61H
&' %1+4C-H
-
8/19/2019 Assembly Wk 01
49/49
49
o. INDI;C - DI;C
Pada istr(ksi +a& dipakai disii !e&&(akare&ister INDI;C sea&ai re&ister pe!roses+a
de&a diisi data dari a#a!at itera# "M.
"+nt+, :
&' %4+61H
&' %1+65H