Pengalamatan Bit

Click here to load reader

download Pengalamatan Bit

of 40

  • date post

    05-Jan-2016
  • Category

    Documents

  • view

    78
  • download

    0

Embed Size (px)

description

Pengalamatan Bit. Pengalamatan bit adalah penunjukan alamat lokasi bit baik dalam RAM internal (byte 32H sampai dengan 47H) atau bit perangkat keras. Untuk melakukan pengalamatan bit digunakan simbol titik (.) misalnya PSW.3 , PSW.4. Tabel Pengalamatan Bit. Tabel Pengalamatan Bit. - PowerPoint PPT Presentation

Transcript of Pengalamatan Bit

  • Pengalamatan BitPengalamatan bit adalah penunjukan alamat lokasi bit baik dalam RAM internal (byte 32H sampai dengan 47H) atau bit perangkat keras. Untuk melakukan pengalamatan bit digunakan simbol titik (.) misalnya PSW.3 , PSW.4

    *

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaCYPSW.7D7HCarry FlagACPSW.6D6HAuxiliary Carry FlagFOPSW.5D5HFlag 0

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaRS1PSW.4D4HReg. Bank Select bit 1RS0PSW.3D3HReg. Bank Select bit 0OVPSW.2D2HOverflow flagPPSW.0D0HParity Flag

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaTF1TCON.78FHTimer 1 Overflow FlagTR1TCON.68EHTimer 1 Run Control FlagTF0TCON.58DHTimer 0 Overflow FlagTR0TCON.48CHTimer 0 Run Control Flag

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaIE1TCON.38BHInterrupt 1 Edge FlagIT1TCON.28AHInterrupt 1 Type ControlIE0TCON.189HInterrupt 0 Edge FlagIT0TCON.088HInterrupt 0 Type Control

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaSM0SCON.79FHSerial Mode Control Bit 0SM1SCON.69EHSerial Mode Control Bit 1SM2SCON.59DHSerial Mode Control Bit 2RENSCON.49CHRceiver enable

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaTB8SCON.39BHTransmit bit 8RB8SCON.29AHReceiver bit 8T1SCON.199HTransmit Interrupt FlagR1SCON.098HReceiver Interrupt Flag

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaEAIE.7AFHEnable All InterruptESIE.6ACHEnable Serial Port InterruptET1IE.5ABHEnable Timer 1 InterruptEX1IE.4AAHEnable External Int. 1ET0IE.1A9HEnable Timer 0 InterruptEX0IE.0A8HEnable External Int. 0

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaRD-B7HRead Data External MemoryWR-B6HWrite Data External MemoryT1-B5HTimer/Counter 1 Ext. FlagT0-B4HTimer/Counter 0 Ext. Flag

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaINT 1B3HInterrupt 1 Input PinINT 0B2HInterrupt 0 Input PinTxDB1HSerial Port Transmit PinRxDB0HSerial Port Receiver Pin

  • Tabel Pengalamatan Bit*

    SimbolPosisi BitAlamat BitNamaPSIP.4BCHSerial Port Interrupt PriorityPT1IP.3BBHTimer 1 Interrupt PriorityPX1IP.2BAHExternal Interrupt 1 PriorityPT0IP.1B9HTimer 0 Interrupt PriorityPX0IP.0B8HExternal Interrupt 0 Priority

  • Pengalamatan Kode Pengalamatan kode merupakan pengalamatan ketika operand merupakan alamat dari instruksi jump dan call ( ACALL, JMP, LJMP, dan LCALL ). Biasanya operand tersebut akan menunjuk ke suatu alamat yang telah diberi label sebelumnya seperti pada contoh berikut :

    ACALLDelay..............................Delay: MOVB, # 0FFHLoop_Delay: DJNZB, Loop_Delay RET*

  • Pengalamatan Kode Pada Listing program diatas perintah ACALL Delay mempunyai operand yang menunjuk ke label Delay sehingga pada saat perintah ini dijalankan, program akan melompat ke lokasi memori yang diberi nama label/kode Delay.*

  • b. Ekspresi Assembler Dalam memberikan sebuah nilai pada operand dapat dilakukan dengan langsung memberikan nilai yang diinginkan seperti pada perintah MOV 00H,#05H Instruksi diatas mempunyai arti memberikan nilai 05H pada alamat 00H.Cara lain, dengan menggunakan lambang yang telah ditentukan oleh assembler, seperti MOV R0,#05HInstruksi diatas juga mempunyai arti memberikan nilai 05H pada register R0. Register ini merupakan alamat 00H pada bank 0.*

  • Dan cara yang ketiga yaitu dengan menggunakan ekspresi assembler seperti yang akan dibahas berikut.Dengan ekspresi assembler, sebuah operand dapat diekspresikan dalam bermacam macam bentuk sesuai keinginan pembuat program. Hal ini membuat pembuatan program dapat dilakukan lebih mudah.*

  • Basis BilanganMikroprosesor Intel menggunakan akhiran B untuk ekspresi biner, Q untuk ekspresi oktal, D untuk ekspresi desimal dan H untuk ekspresi heksa. Oleh karena itu, sebuah bilangan 10 desimal dapat diekspresikan sebagai berikut :00001010B untuk biner12Q untuk oktal10D atau 10 (tanpa akhiran) untuk desimal0AH untuk heksa*

  • Untuk perintah perintah yang berhubungan dengan I/O penggunaan ekspresi biner akan lebih mempermudah karena kondisi setiap bit dari I/O terekspresi lebih jelas dalam bentuk ini.Contoh :Untuk mengaktifkan LED yang terhubung pada P1.5 dan P1.7 saja dengan mode aktif logika 0 dan nonaktif pada logika 1, perintah dapat dituliskan sebagai berikut :MovP1, # 01011111B*

  • Pada perintah perintah ketika operand yang diekspresikan berupa bilangan yang harus dihitung secara visual oleh pembuat program, ekspresi dalam desimal akan lebih mempermudah.

    Contoh : Untuk membentuk penundaan dengan melakukan looping ( putaran ) sebanyak 10 kali di tempat sebelum meneruskan program, perintah dapat dituliskan sebagai berikut :MOVR7,#10D; R7 diisi dengan nilai yang ; diekspresikan dam bentuk ; desimal; ( akhiran D tidak harus ; dituliskan dalam ; bentuk ini )Loop: DJNZR7, Loop*

  • Dalam penulisan ekspresi bentuk heksa, harus selalu diawali dengan bilangan seperti pada ekspresi A5H harus diawali dengan "0" sehingga menjadi 0A5H. Hal ini dibuktikan oleh program assembly untuk membedakan apakah operand tersebut merupakan label ( yang harus diawali dengan karakter ) atau nilai ( yang harus diawali dengan bilangan ).*

  • String Karakter

    Ekspresi string dilakukan dengan memberikan tanda ' ' di antara nilai yang diinginkan. Ekspresi ini sangat berguna jika pembuat program ingin menuliskan perintah yang membutuhkan nilai ASCII dari suatu operand.*

  • Contoh :

    Jika pembuat program ingin menuliskan nilai ASCII dari karakter B ke dalam akumulator,

    perintah:MOV A,#'B

    akan lebih mudah ditulis daripada perintah MOV A,#42H karena pembuat program masih harus melihat tabel ASCII terlebih dahulu.*

  • Operator AssemblerAda empat belas operator dalam assembler yang meliputi operator aritmatika, operator logika, operator khusus, dan operator hubungan (relasional)*

  • Operator AritmatikaEkspresi ini digunakan untuk mempermudah membuat program dalam pemberian nilai pada operand yang memerlukan proses perhitungan terlebih dahulu. Operator aritmatika terdiri atas :

    +untuk penambahan-untuk pengurangan*untuk perkalian/untuk pembagianMODuntuk modulo (mengekspresikan sisa setelah pembagian )*

  • Contoh :

    Mov A, #10+10Hdapat diekspresikan menjadiMov A,#1AH atauMov A,325 MOD 7dapat diekspresikan menjadi Mov A,#3.*

  • Operator LogikaEkspresi ini digunakan untuk mempermudah pembuat program dalam pemberian nilai pada operand yang memerlukan proses operasi logika terlebih dahulu. Operator operator tersebut terdiri atas :

    ORuntuk operasi logika ORANDuntuk operasi logika ANDXORuntuk operasi logika EXORNOTuntuk operasi logika komplemen*

  • Contoh :Mov A,#39 OR 0FHadalah sama denganMov A,#47Mov A,#-3 adalah sama dengan Mov A,# NOT 3*

  • Operator Khusus

    Operator-operator ini terdiri atas :

    SHRuntuk menggeser ke kananContoh :Mov A,#00001000b SHR 1 adalah sama denganMov A, # 00000100b*

  • SHLuntuk menggeser ke kiriContoh :Mov A,#00001000B SHL 1 adalah sama denganMov A, # 00010000b*

  • HIGHuntuk mengambil nilai byte tinggi

    Contoh :Mov A,#HIGH 1234H

    adalah sama denganMov A, # 12H*

  • LOWuntuk mengambil nilai byte rendahContoh :Mov A,#LOW 1234H adalah sama denganMov A, # 34H

    *

  • ( )untuk operasi yang harus didahulukan

    Contoh :Mov A,#(10+4)*3

    bilangan 10 desimal terlebih dahulu dijumlahkan dengan 4 sebelum dikali dengan 3 dengan adanya operator ()*

  • Operator-operator Relasional

    Operator-operator ini digunakan di antara dua buah operand dan hasilnya adalah 0000H untuk salah serta FFFFH untuk benar.

    *

  • Operator-operator Relasional ini terdiri atas ;

    EQ atau = untuk ekspresi sama dengan

    Contoh :Mov A,# 5=5 akan menghasilkan FFH, yaitu Mov A,#0FFH karena hasilnya benar*

  • NE atau < >untuk ekspresi tidak sama denganContoh :Mov A,#5 NE 4 akan menghasilkan FFH

    YaituMov A, # 0FFH karena hasilnya benar

    *

  • LT atau untuk lebih besar

    Contoh :

    Mov A, #X GT p akan menghasilkan 00H,Yaitu: Mov A, # 00H karena hasilnya salah*

  • GE atau >=untuk lebih besar sama dengan

    Contoh :Mov A,#50 GE 100 akan menghasilkan 00HYaitu: Mov A,#00H karena hasilnya salah *

  • Prioritas Operator

    Operator operator ekspresi mempunyai urutan prioritas sebagai berikut, dan operator yang mempunyai prioritas tertinggi terlebih dahulu dilakukan :Tanda kurung ( )HIGH LOW* / MOD SHL SHR+ -EQ NE LT LE GT GENOTANDOR XOR*

  • Contoh:LOW (A 2), nilai ASCII karakter A, yaitu 0041H dikurangi dengan 2 terlebih dahulu sehingga menjadi 003FH dan diambil byte rendahnya, yaitu 3FH.

    *