Pengalamatan Langsung<\/strong> Pengalamatan Langsung Data (direct) Pengalamatan Tak Langsung Dengan digunakan system pengalamatan tak langsung, dapat diubah menjadi:<\/p>\n Mov R0,#50H<\/p><\/blockquote>\n Loop:<\/p>\n Mov @R0,#08H<\/p>\n Inc R0<\/p>\n Cjne R0,#58H,loop<\/p><\/blockquote>\n Dalam listing ini, R0 digunakan sebagai register yang menyimpan alamat dari data yang akan dituliskan. Dengan melakukan penambahan pada isi R0 dan mengulang perintah penulisan data ke alamat yang ditunjukan R0 hingga register ini menunjukan nilai 57H+1, atau 58H. AT89S51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit (R0 dan R1) yang dapat digunakan untuk melakukan penngalamatan tidak langsung. Pengalamatan Kode Pengalamatan Bit<\/strong> Pengalamatan Langsung Immediate data Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan data yang akan dip roses. Biasanya operand tersebut selalu diawali dengan tanda \u201e\u201f#\u201d seperti pada contoh di bawah ini: Mov A,#05H Mov A,#Data ; pada bagian di atas data telah didefinisikan sebagai bilangan ; tertentu (data EQU 05) contohnya bilangan …<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[174],"tags":[398,401,403,402,404,405,399,400,406,407],"class_list":["post-343","post","type-post","status-publish","format-standard","hentry","category-merancang-rangkaian-kontrol","tag-bahasa-assembler","tag-bahasa-assembler-8051","tag-bahasa-assembler-8086","tag-bahasa-assembler-89c51","tag-bahasa-assembler-mikrokontroler","tag-bahasa-assembler-mikrokontroler-at89s51","tag-bahasa-assembler-pdf","tag-bahasa-assembler-tutorial","tag-bahasa-assembler-doc","tag-bahasa-assembler-ppt"],"_links":{"self":[{"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/posts\/343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/comments?post=343"}],"version-history":[{"count":1,"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/posts\/343\/revisions"}],"predecessor-version":[{"id":2869,"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/posts\/343\/revisions\/2869"}],"wp:attachment":[{"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/media?parent=343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/categories?post=343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tneutron.net\/mikro\/wp-json\/wp\/v2\/tags?post=343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}
\nImmediate data
\nProses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan data yang akan dip roses. Biasanya operand tersebut selalu diawali dengan tanda \u201e\u201f#\u201d seperti pada contoh di bawah ini:
\nMov A,#05H
\nMov A,#Data ; pada bagian di atas data telah didefinisikan sebagai bilangan ; tertentu (data EQU 05) contohnya bilangan 5.<\/p>\n
\n<\/strong>Proses pengalamat ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses.
\nMov P0,A
\nPort 0 adalah salah satu I\/O dari AT89C51 yang mempunyai alamat 80H. Perintah pada contoh di atas dapat di tulis juga:
\nMov 80H,A<\/p>\n
\n<\/strong>Proses pengalamat ini terjadi pada sebuah perintah ketika salah satu operand merupakan register berisikan alamat dari data yang akan diisi dan dipindahkan. Pengalamatan jenis ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang urutan beraturan. Jika proses ini dilakukan dengan menggunakan pengalamatan langsung , jumlah baris program yang akan diperlukan akan cukup panjang seperti contoh di bawah ini:
\nMov 50H, #08H
\nMov 51H, #08H
\nMov 52H, #08H
\nMov 53H, #08H
\nMov 54H, #08H
\nMov 55H, #08H
\nMov 56H, #08H
\nMov 58H, #08H<\/p>\n
\nContoh-contoh perintah menggunakan system pengalamatan tak langsung:
\nMov @R0,A ;R0 digunakan sebagai register penyimpan alamat
\nMov A,@R1 ;R1 digunakan sebagai register penyimpan alamat
\nAdd A,@R0 ;R0 digunakan sebagai register penyimpan alamat
\nMov @DPTR,A ;DPTR digunakan sebagai register penyimpan alamat
\nMov A,@A+DPTR ;DPTR digunakan sebagai register penyimpan alamat<\/p>\n
\n<\/strong>Pengalamatan kode merupakan pengalamatan ketika operand merupakan alamat dari instruksi jump dan call (ACALL,JMP,LJMP dan LCALL). Biasanya operand tersebut akan menunjukkan ke suatu alamat yang telah di beri label sebelumnya.<\/p>\n
\nProses pengalamatan ketika operand menunjukkan ke alamat RAM internal ataupun Register fungsi khusus yang mempunyai kemampuan pengalamatan secara bit (bit addressable).
\nBerdasarkan penulisannya, pengalamatan ini terdiri dari:
\n\uf0b7 Langsung menunjuk ke alamat bit
\nSetb 0B0H
\nPerintah ini memberikan logika 1 pada bit di alamat B0H dengan pengalamat secara bit.
\n\uf0b7 Menggunakan operator titik
\n\uf0b7 Menggunakan lambang assembler secara standard
\n\uf0b7 Menggunakan lambang assembler secara bebas
\nPengalamatan bit ialah penunjukkan menggunakan simbol titik (.)yang menunjuk alamat lokasi bit, baik dalm RAM internal atau perangkat keras.<\/p>\n","protected":false},"excerpt":{"rendered":"