Rabu, 25 September 2013

Sejarah Ponsel, dari Generasi 0 hingga ke Generasi 4


Berkas:A5306ST au mobile phone.jpgHari ini saya kembali membicarakan tentang sejarah ponsel (telepon selular). Setelah saya membuat artikel tentang Sejarah Vendor LG, saya rasa kurang lengkap jika sejarah ponsel tidak dipublikasikan di blog ini.
Telepon genggam (telgam) atau telepon selular (ponsel) atau handphone (HP) adalah sebuah perangkat telekomunikasi elektronik yang mempunyai kemampuan dasar yang sama dengan telepon konvensional saluran tetap, namun dapat dibawa ke mana-mana (portabel, mobile) dan tidak perlu disambungkan dengan jaringan telepon menggunakan kabel (nirkabel; wireless). Saat ini Indonesia mempunyai dua jaringan telepon nirkabel yaitu sistem GSM (Global System for Mobile Telecommunications) dan sistem CDMA (Code Division Multiple Access). Ponsel juga semakin berkembang dari generasi 0 sampai ke generasi 4. Misalnya saja ponsel sudah bisa mengakses internet, memutar musik atau video, menangkap gambar objek menggunakan kamera, membuat video, menjalankan OS, dapat menyimpan data, dll.
Berkas:Several mobile phones.pngSelain berfungsi untuk melakukan dan menerima panggilan telepon, ponsel umumnya juga mempunyai fungsi pengiriman dan penerimaan pesan singkat (short message service, SMS). Ada pula penyedia jasa telepon genggam di beberapa negara yang menyediakan layanan generasi ketiga (3G) dengan menambahkan jasa videophone, sebagai alat pembayaran, maupun untuk televisi online di telepon genggam mereka. Sekarang, telepon genggam menjadi gadget yang multifungsi. Mengikuti perkembangan teknologi digital, seperti yang sudah saya jelaskan tadi bahwa ponsel juga dilengkapi dengan berbagai pilihan fitur, seperti bisa menangkap siaran radio dan televisi, perangkat lunak pemutar audio (MP3) dan video, kamera digital, game, dan layanan internet (WAP, GPRS, EDGE, 3G, HSDPA, HSUPA bahkan 4G). Selain fitur-fitur tersebut, ponsel sekarang sudah ditanamkan fitur komputer (apalagi jika menjalankan OS).
Jadi di ponsel tersebut, orang bisa mengubah fungsi ponsel tersebut menjadi mini komputer. Di dunia bisnis, fitur ini sangat membantu bagi para pebisnis untuk melakukan semua pekerjaan di satu tempat dan membuat pekerjaan tersebut diselesaikan dalam waktu yang singkat dan juga bagi para remaja sekarang yang mulai aktivitas di internet juga mendapatkan keuntungan karena ponsel sudah mendukung koneksi internet GPRS, EDGE, maupun 3G. Untuk yang ingin berinternet ria tanpa menghabiskan pulsa juga bisa memakai ponsel berkoneksi Wi-Fi.

PERKEMBANGAN

Generasi 0 (0-G)
Sejarah penemuan telepon seluler tidak lepas dari perkembangan radio. Awal penemuan telepon seluler dimulai pada tahun 1921 ketika Departemen Kepolisian Detroit Michigan mencoba menggunakan telepon mobil satu arah. Kemudian, pada tahun 1928 Kepolisian Detroit mulai menggunakan radio komunikasi satu arah regular pada semua mobil patroli dengan frekuensi 2 MHz. Pada perkembangan selanjutnya, radio komunikasi berkembang menjadi dua arah dengan ‘’frequency modulated‘’(FM).
Tahun 1940, Galvin Manufactory Corporation (sekarang berganti nama menjadi Motorola) mengembangkan portable Handie-talkie SCR536, yang berarti sebuah alat komunikasi di medan perang saat perang dunia II.

Handie-talkie SCR536


Masa ini merupakan generasi 0 telepon seluler atau 0-G, dimana telepon seluler mulai diperkenalkan.
Setelah mengeluarkan SCR536,kemudian pada tahun 1943 Galvin Manufactory Corporation mengeluarkan kembali portable FM radio dua arah pertama yang diberi nama SCR300 dengan model backpack untuk tentara U.S. Alat ini memiliki berat sekitar 35 pon dan dapat bekerja secara efektif dalam jarak operasi 10 sampai 20 mil.
Sistem telepon seluler 0-G masih menggunakan sebuah sistem radio VHF untuk menghubungkan telepon secara langsung pada PSTN landline. Kelemahan sistem ini adalah masalah pada jaringan kongesti yang kemudian memunculkan usaha-usaha untuk mengganti sistem ini.
Generasi 0 (0-G) pun diakhiri dengan penemuan konsep modern oleh insinyur-insinyur dari Bell Labs pada tahun 1947. Mereka menemukan konsep penggunaan telepon hexagonal sebagai dasar telepon seluler. Namun, konsep ini baru dikembangkan pada tahun 1960-an.

Generasi 1(1G)
Inilah telepon seluler generasi pertama yang biasa disebut 1G. 1-G merupakan telepon seluler pertama yang sebenarnya. Tahun 1973, Martin Cooper dari Motorola Corp menemukan telepon seluler pertama dan memperkenalkan ponsel tersebut kepada publik pada 3 April 1973. Telepon seluler yang ditemukan oleh Cooper memiliki berat 30 ons atau sekitar 800 gram. Penemuan inilah yang telah mengubah dunia selamanya.

Ponsel generasi pertama (1G)
Teknologi yang digunakan 1-G masih bersifat analog dan dikenal dengan istilah AMPS. AMPS menggunakan frekuensi antara 825 Mhz- 894 Mhz dan dioperasikan pada Band 800 Mhz. Karena bersifat analog, maka sistem yang digunakan masih bersifat regional. Salah satu kekurangan generasi 1-G adalah karena ukurannya yang terlalu besar untuk dipegang oleh tangan. Ukuran yang besar ini dikarenakan keperluan tenaga dan performa baterai yang kurang baik. Selain itu generasi 1-G masih memiliki masalah dengan mobilitas pengguna. Pada saat melakukan panggilan, mobilitas pengguna terbatas pada jangkauan area telpon seluler.

Generasi 2(2G)
Ponsel generasi kedua (2G)
Generasi kedua atau 2-G muncul pada sekitar tahun 1990-an. 2G di Amerika sudah menggunakan teknologi CDMA, sedangkan di Eropa menggunakan teknologi GSM. GSM menggunakan frekuensi standar 900 Mhz dan frekuensi 1800 Mhz. Dengan frekuensi tersebut, GSM memiliki kapasitas pelanggan yang lebih besar. Pada generasi 2G sinyal analog sudah diganti dengan sinyal digital. Penggunaan sinyal digital memperlengkapi telepon seluler dengan pesan suara, panggilan tunggu, dan SMS.
Telepon seluler pada generasi ini juga memiliki ukuran yang lebih kecil dan lebih ringan karena penggunaan teknologi chip digital. Ukuran yang lebih kecil juga dikarenakan kebutuhan tenaga baterai yang lebih kecil. Keunggulan dari generasi 2G adalah ukuran dan berat yang lebih kecil serta sinyal radio yang lebih rendah, sehingga mengurangi efek radiasi yang membahayakan pengguna.

Generasi 3(3G)
Generasi ini disebut juga 3G yang memungkinkan operator jaringan untuk memberi pengguna mereka jangkauan yang lebih luas, termasuk internet sebaik video call berteknologi tinggi.
Ponsel generasi ketiga(3G)

Dalam 3G terdapat 3 standar untuk dunia telekomunikasi yaitu Enhance Datarates for GSM Evolution (EDGE), Wideband-CDMA, dan CDMA 2000. Kelemahan dari generasi 3G ini adalah biaya yang relater lebih tinggi, dan kurangnya cakupan jaringan karena masih barunya teknologi ini.

Generasi 4(4G)
Generasi ini disebut juga Fourth Generation (4G). 4G merupakan sistem telepon seluler yang menawarkan pendekatan baru dan solusi infrstruktur yang mengintegrasikan teknologi wireless yang telah ada termasukwireless broadband (WiBro), 802.16e, CDMA, wireless LAN, Bluetooth, dlll. sistem 4G berdasarkan heterogenitas jaringan IP yang memungkinkan pengguna untuk menggunakan beragam sistem kapan saja dan dimana saja. 4G juga memberikan penggunanya kecepatan tinggi, volume tinggi, kualitas baik, jangkauan global, dan fleksibilitas utnuk menjelajahi berbagai teknologi berbeda. Terakhir,4G memberikan pelayanan pengiriman data cepat untuk mengakomodasi berbagai aplikasi multimedia seperti, video conferencing, game on-line, dll.

sejarah perkembangan komputer generasi 1-5

NAMA: SISILIA FERNANDA

NIM: 13110222

sejarah perkembangan komputer generasi 1-5

1. Generasi Pertama (1944-1959)
http://hermawayne.blogspot.com
Tabung hampa udara sebagai penguat sinyal, merupakan ciri khas komputer generasi pertama. Pada awalnya, tabung hampa udara (vacum-tube) digunakan sebagai komponen penguat sinyal. Bahan bakunya terdiri dari kaca, sehingga banyak memiliki kelemahan, seperti: mudah pecah, dan mudah menyalurkan panas. Panas ini perlu dinetralisir oleh komponen lain yang berfungsi sebagai pendingin.

Dan dengan adanya komponen tambahan, akhirnya komputer yang ada menjadi besar, berat dan mahal. Pada tahun 1946, komputer elektronik di dunia yang pertama yakni ENIAC selesai dibuat. Pada komputer tersebut terdapat 18.800 tabung hampa udara dan berbobot 30 ton. begitu besar ukurannya, sampai-sampai memerlukan suatu ruangan kelas tersendiri.

Pada gambar nampak komputer ENIAC, yang merupakan komputer elektronik pertama di dunia yang mempunyai bobot seberat 30 ton, panjang 30 M dan tinggi 2.4 M dan membutuhkan daya listrik 174 kilowatts.

2. Generasi Kedua (1960-1964)
http://hermawayne.blogspot.com
Transistor merupakan ciri khas komputer generasi kedua. Bahan bakunya terdiri atas 3 lapis, yaitu: “basic”“collector” dan “emmiter”. Transistor merupakan singkatan dari Transfer Resistor, yang berarti dengan mempengaruhi daya tahan antara dua dari 3 lapisan, maka daya (resistor) yang ada pada lapisan berikutnya dapat pula dipengaruhi. Dengan demikian, fungsi transistor adalah sebagai penguat sinyal. Sebagai komponen padat, tansistor mempunyai banyak keunggulan seperti misalnya: tidak mudah pecah, tidak menyalurkan panas. Dan dengan demikian, komputer yang ada menjadi lebih kecil dan lebih murah.

Pada tahun 1960-an, IBM memperkenalkan komputer komersial yang memanfaatkan transistor dan digunakan secara luas mulai beredar di pasaran. Komputer IBM-7090 buatan Amerika Serikat merupakan salah satu komputer komersial yang memanfaatkan transistor. Komputer ini dirancang untuk menyelesaikan segala macam pekerjaan baik yang bersifat ilmiah ataupun komersial. Karena kecepatan dan kemampuan yang dimilikinya, menyebabkan IBM 7090 menjadi sangat popular. Komputer generasi kedua lainnya adalah: IBM Serie 1400, NCR Serie 304, MARK IV dan Honeywell Model 800.

3. Generasi Ketiga (1964-1975)
http://hermawayne.blogspot.com
Konsep semakin kecil dan semakin murah dari transistor, akhirnya memacu orang untuk terus melakukan berbagai penelitian. Ribuan transistor akhirnya berhasil digabung dalam satu bentuk yang sangat kecil. Secuil silicium yag mempunyai ukuran beberapa milimeter berhasil diciptakan, dan inilah yang disebut sebagai Integrated Circuit atau IC-Chip yang merupakan ciri khas komputer generasi ketiga. Cincin magnetic tersebut dapat di-magnetisasi secara 1 arah ataupun berlawanan, dan akhirnya men-sinyalkan kondisi “ON” ataupun “OFF” yang kemudian diterjemahkan menjadi konsep 0 dan 1 dalam system bilangan biner yang sangat dibutuhkan oleh komputer. Pada setiap bidang memory terdapat 924 cincin magnetic yang masing-masing mewakili 1 bit informasi. Jutaan bit informasi saat ini berada di dalam 1 chip tunggal dengan bentuk yang sangat kecil.

Komputer yang digunakan untuk otomatisasi pertama dikenalkan pada tahun 1968 oleh PDC 808, yang memiliki 4 KB (kilo-Byte) memory dan 8 bit untuk core memory.

4. Generasi Keempat (1975-Sekarang)
http://hermawayne.blogspot.com http://hermawayne.blogspot.com
Microprocessor merupakan chiri khas komputer generasi keempat yang merupakan pemadatan ribuan IC ke dalam sebuah Chip. Karena bentuk yang semakin kecil dan kemampuan yang semakin meningkat dan harga yang ditawarkan juga semakin murah. Microprocessor merupakan awal kelahiran komputer personal.

Pada tahun 1971, Intel Corp kemudian mengembangkan microprocessor pertama serie 4004. Contoh generasi ini adalah Apple I Computer yang dikembangkan oleh Steve Wozniak dan Steve Jobs dengan cara memasukkan microprocessor pada circuit board komputer. Di samping itu, kemudian muncul TRS Model 80 dengan processor jenis Motorola 68000 dan Zilog Z-80 menggunakan 64Kb RAM standard. Komputer Apple II-e yang menggunakan processor jenis 6502R serta Ram sebesar 64 Kb, juga merupakan salah satu komputer PC sangat popular pada masa itu. Operating Sistem yang digunakan adalah: CP/M 8 Bit. Komputer ini sangat populer pada awal tahun 80-an.

IBM mulai mengeluarkan Personal Computer pada sekitar tahun 1981, dengan menggunakan Operating System MS-DOS 16 Bit. Dikarenakan harga yang ditawarkan tidak jauh berbeda dengan komputer lainnya, di samping teknologinya jauh lebih baik serta nama besar dari IBM sendiri, maka dalam waktu yang sangat singkat, komputer ini menjadi sangat popular.

5. Generasi Kelima (Sekarang – Masa depan)
http://hermawayne.blogspot.com
Pada generasi ini ditandai dengan munculnya: LSI (Large Scale Integration) yang merupakan pemadatan ribuan microprocessor ke dalam sebuah microprocesor. Selain itu, juga ditandai dengan munculnya microprocessor dan semi conductor. Perusahaan-perusahaan yang membuat micro-processor di antaranya adalah: Intel Corporation, Motorola, Zilog dan lainnya lagi. Di pasaran bisa kita lihat adanya microprocessor dari Intel dengan model 4004, 8088, 80286, 80386, 80486, dan Pentium. Pentium-4 merupakan produksi terbaru dari Intel Corporation yang diharapkan dapat menutupi segala kelemahan yang ada pada produk sebelumnya, di samping itu, kemampuan dan kecepatan yang dimiliki Pentium-4 juga bertambah menjadi 2 Ghz. Gambar-gambar yang ditampilkan menjadi lebih halus dan lebih tajam, di samping itu kecepatan memproses, mengirim ataupun menerima gambar juga menjadi semakin cepat.

Pentium-4 diproduksi dengan menggunakan teknologi 0.18 mikron. Dengan bentuk yang semakin kecil mengakibatkan daya, arus dan tegangan panas yang dikeluarkan juga semakin kecil. Dengan processor yang lebih cepat dingin, dapat dihasilkan kecepatan MHz yang lebih tinggi. Kecepatan yang dimiliki adalah 20 kali lebih cepat dari generasi Pentium 3.

Packard Bell iXtreme 4140i merupakan salah satu PC komputer yang telah menggunakan Pentium-4 sebagai processor dengan kecepatan 1.4 GHz, memory RDRAM 128 MB, Harddisk sebesar 40 GB (1.5 GB digunakan untuk recovery), serta video card GeForce2 MX dengan memory 32 MB. HP Pavilion 9850 juga merupakan PC yang menggunakan Pentium-4 untuk processornya dengan kecepatan 1.4 GHz. PC Pentium-4 Hewllett-Packard ini dating dengan dominan warna hitam dan abu-abu. Dibandingkan dengan PC lainnya, Pavilion merupakan PC Pentium-4 dengan fasilitas terlengkap. Memory yang dimiliki sebesar RDRAM 128 MB, Harddisk 30 GB dengan monitor sebesar 17 inchi.

Minggu, 22 September 2013

Bahasa Rakitan 1

Nama   : Sisilia Fernanda
Nim     : 13110222
Tugas  : Assembly



Posted by Full Tutorial For You My Friends on Tuesday, April 7, 2009
Program sumber assembly
Program-sumber assembly (assembly source program) merupakan kumpulan dari baris-baris perintah yang ditulis dengan program penyunting-teks (text editor) sederhana, misalnya program EDIT.COM dalam DOS, atau program NOTEPAD dalam Windows. Kumpulan baris-printah tersebut biasanya disimpan ke dalam file dengan nama ekstensi *.ASM atau nama lain misalnya *.A51 dan lain sebagainya, tergantung pada program Assembler yang akan dipakai untuk mengolah program-sumber assembly tersebut.

Setiap baris-perintah merupakan sebuah perintah yang utuh, artinya sebuah perintah tidak mungkin dipecah menjadi lebih dari satu baris. Satu baris perintah bisa terdiri atas 4 bagian, bagian pertama dikenali sebagai label atau sering juga disebut sebagai symbol, bagian kedua dikenali sebagai kode operasi, bagian ketiga adalah operand dan bagian terakhir adalah komentar.

Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator.


Bagian label

Label dipakai untuk memberi nama pada sebuah baris-perintah, agar bisa mudah menyebitnya dalam penulisan program. Label bisa ditulis apa saja asalkan diawali dengan huruf, biasa panjangnya tidak lebih dari 16 huruf. Huruf-huruf berikutnya boleh merupakan angka atau tanda titik dan tanda garis bawah. Kalau sebuah baris-perintah tidak memiliki bagian label, maka bagian ini boleh tidak ditulis namun spasi atau tabulator sebagai pemisah antara label dan bagian berikutnya mutlak tetap harus ditulis.

Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada label yang kembar.

Sering sebuah baris-perintah hanya terdiri dari bagian label saja, baris demikian itu memang tidak bisa dikatakan sebagai baris-perintah yang sesungguhnya, tapi hanya sekedar memberi nama pada baris bersangkutan.

Bagian label sering disebut juga sebagai bagian symbol, hal ini terjadi kalau label tersebut tidak dipakai untuk menandai bagian program, melainkan dipakai untuk menandai bagian data.


Bagian kode operasi

Kode operasi (operation code atau sering disingkat sebagai OpCode) merupakan bagian perintah yang harus dikerjakan. Dalam hal ini dikenal dua macam kode operasi, yang pertama adalah kode-operasi untuk mengatur kerja mikroprosesor / mikrokontroler. Jenis kedua dipakai untuk mengatur kerja program assembler, sering dinamakan sebagai assembler directive.

Kode-operasi ditulis dalam bentuk mnemonic, yakni bentuk singkatan-singkatan yang relatip mudah diingat, misalnya adalah MOV, ACALL, RET dan lain sebagainya. Kode-operasi ini ditentukan oleh pabrik pembuat mikroprosesor/mikrokontroler, dengan demikian setiap prosesor mempunyai kode-operasi yang berlainan.

Kode-operasi berbentuk mnemonic tidak dikenal mikroprosesor/mikrokontroler, agar program yang ditulis dengan kode mnemonic bisa dipakai untuk mengendalikan prosesor, program semacam itu diterjemahkan menjadi program yang dibentuk dari kode-operasi kode-biner, yang dikenali oleh mikroprosesor/mikrokontroler.

Tugas penerjemahan tersebut dilakukan oleh program yang dinamakan sebagai Program Assembler.

Di luar kode-operasi yang ditentukan pabrik pembuat mikroprosesor/mikrokontroler, ada pula kode-operasi untuk mengatur kerja dari program assembler, misalnya dipakai untuk menentukan letak program dalam memori (ORG), dipakai untuk membentuk variabel (DS), membentuk tabel dan data konstan (DB, DW) dan lain sebagainya.
Bagian operand
Operand merupakan pelengkap bagian kode operasi, namun tidak semua kode operasi memerlukan operand, dengan demikian bisa terjadi sebuah baris perintah hanya terdiri dari kode operasi tanpa operand. Sebaliknya ada pula kode operasi yang perlu lebih dari satu operand, dalam hal ini antara operand satu dengan yang lain dipisahkan dengan tanda koma.

Bentuk operand sangat bervariasi, bisa berupa kode-kode yang dipakai untuk menyatakan Register dalam prosesor, bisa berupa nomor-memori (alamat memori) yang dinyatakan dengan bilangan atau pun nama label, bisa berupa data yang siap di-operasi-kan. Semuanya disesuaikan dengan keperluan dari kode-operasi.

Untuk membedakan operand yang berupa nomor-memori atau operand yang berupa data yang siap di-operasi-kan, dipakai tanda-tanda khusus atau cara penulisan yang berlainan.

Di samping itu operand bisa berupa persamaan matematis sederhana atau persamaan Boolean, dalam hal semacam ini program Assembler akan menghitung nilai dari persamaan-persamaan dalam operand, selanjutnya merubah hasil perhitungan tersebut ke kode biner yang dimengerti oleh prosesor. Jadi perhitungan di dalam operand dilakukan oleh program assembler bukan oleh prosesor!
Bagian komentar
Bagian komentar merupakan catatan-catatan penulis program, bagian ini meskipun tidak mutlak diperlukan tapi sangat membantu masalah dokumentasi. Membaca komentar-komentar pada setiap baris-perintah, dengan mudah bisa dimengerti maksud tujuan baris bersangkutan, hal ini sangat membantu orang lain yang membaca program.

Pemisah bagian komentar dengan bagian sebelumnya adalah tanda spasi atau tabulator, meskipun demikian huruf pertama dari komentar sering-sering berupa tanda titik-koma, merupakan tanda pemisah khusus untuk komentar.

Untuk keperluan dokumentasi yang intensip, sering-sering sebuah baris yang merupakan komentar saja, dalam hal ini huruf pertama dari baris bersangkutan adalah tanda titik-koma.


Pembahasan di atas diringkas dalam Gambar 1.



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSWlM6Lz56aZKdFumqNjuX5jJcg7gv_25Om7NPPTgVEP1ziYUV8jeyu3EOV76T7p1j2eJI24hG06s65_yJR0YX-iN1E9NMzDBkJQ8T5HE0rA5fRGCLZcKBhdHMNYNJwr4cv_aj3oC8n9-8/s400/IMAGE002.JPG

Gambar 1


Program-sumber assembly

Assembly Listing

Program-sumber assembly di atas, setelah selesai ditulis diserahkan ke program Assembler untuk diterjemahkan. Setiap prosesor mempunyai program assembler tersendiri, bahkan satu macam prosesor bisa memiliki beberapa macam program Assembler buatan pabrik perangkat lunak yang berlainan.

Hasil utama pengolahan program Assembler adalah program-obyek. Program-obyek ini bisa berupa sebuah file tersendiri, berisikan kode-kode yang siap dikirimkan ke memori-program mikroprosesor/mikrokontroler, tapi ada juga program-obyek yang disisipkan pada program-sumber assembly seperti terlihat dalam Assembly Listing di Gambar 2.

Bagian kanan Gambar 2 merupakan program-sumber Assembly karya asli penulis program, setelah diterjemahkan oleh program Assembler kode-kode yang dihasilkan berikut dengan nomor-nomor memori tempat penyimpanan kode-kode tadi, disisipkan pada bagian kiri setiap baris perintah, sehingga bentuk program ini tidak lagi dikatakan sebagai program-sumber assembly tapi dikatakan sebagai Assembly Listing.

Membaca Assembly Listing bisa memberikan gambaran yang lebih jelas bagi program yang ditulis, bagi pemula Assembly Listing memberi pengertian yang lebih mendalam tentang isi memori-program, sehingga bisa lebih dibayangkan bagaimana kerja dari sebuah program.





https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqTuseTmdXqNGunA6ducDcProxqZ9AzXFShVN-qifRDQBe2Bgjqzi0_wYfiXnZ0x2DjsJrM7EGLLpADnB5a3m9vSNFtATxr_TW2mgthnB1ITLbBBBhrXonHfcPPbMTnOfw3pi0omi5sJMZ/s400/IMAGE004.JPG

Gambar 2


Assembly Listing

Program Obyek format HEX

Selain Assembly Listing, hasil kerja program Asembler lainnya adalah program obyek yang dipakai untuk mengendalikan sebuah mikroprosesor/mikrokontroler, program obyek disimpan dalam file. Terdapat dua macam bentuk file penyimpan program obyek, yang pertama adalah file yang berisikan kode biner murni, dan yang satu lagi adalah file biner yang sudah diolah menjadi file teks.

File jenis pertama biasanya dinamakan sebagai binary object file, biasanya memakai ekstensi *.BIN. File semacam ini hanya berisikan angka-angka biner yang akan diisikan ke dalam memori tanpa informasi lain, sehingga selalu dianggap bahwa bahwa file tersebut berisikan kode-kode biner yang nantinya ditempatkan mulai dari memori nomor 0. Kalau ternyata kode-kode biner diisikan mulai dari memori nomor 8000h, maka mulai posisi 0 sampai 7FFFh akan diisi dengan bilangan biner 00h, baru setelah itu menyusul kode biner yang sesungguhnya. File semacam ini banyak dipakai untuk EPROM Programmer model lama.

File jenis kedua dinamakan Hexadecimal format object file, biasanya memakai ekstensi *.BIN . Data biner dirubah ke dalam bentuk heksadesimal dan yang disimpan ke dalam file adalah kode ASCII dari bilangan heksadesimal tersebut. Misalnya data biner 00111010, atau heksadesimal 3Ah, dituliskan ke dalam file menjai 33h (kode ASCIInya angka 3) dan 41h (kode ASCIInya huruf A). Dengan cara ini isi dari file tersebut bisa dengan mudah dibaca dengan program penyunting teks (text editor) biasa, bahkan bisa di-cetak di atas kertas seperti terlihat dalam Gambar 3, file semacam itu bisa dibaca dengan text editor biasa, misalnya EDIT.COM dalam DOS, atau NOTEPAD dalam Windows.

Dalam file format HEX semacam ini, selain disimpan data biner yang akan diisikan ke ROM, berisikan pula nomor-nomor memori tempat penyimpanan data biner tersebut. EPROM programer baru umumnya memakai format file obyek semacam ini.



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj91-puY5vGkj1wf5YhN6X92BqPHJxBTHDaCyYBTq2FgqxTVHMCYFmhQ_SGm_c62s82IAqP018UT9M9BcDRuw89oaW7X9heHrXOfug3J1UUskemzE-b88QNvPa5_OomZIzrOa9JYXf8gdlx/s400/IMAGE006.JPG

Gambar 3


Program obyek format HEX

Format HEX dari Intel

Ada beberapa macam format untuk membentuk file program obyek dengan format HEX (Hexadecimal format object file), meskipun demikian hanya 2 yang banyak dipakai, yakni format buatan Motorola yang dinamakan sebagai format S19 dan format buatan Intel yang biasa disebut sebagai format HEX dari Intel.

Berikut ini adalah pembahasan file program obyek dengan format HEX dari Intel yang dipakai MCS51, format ini didefinisikan dalam artikel dari Intel dengan judul Hexadecimal Object File Format Specification (http://alds.stts.edu/appnote/#MCS51).



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkkY1RFFJfwwycPL66ddu0nB34MPXJcgv8WkaM-goiZyz08fijFYnPPTFXbItfKftl9h_i0EXfDYdoHhCLvYpVUieaq2hyphenhyphen9d2k3cHD82TFZZHc9AqHD7VmefZW1YeWTiEq86mTTN4qRWTt/s400/IMAGE008.JPG

Gambar 4


Anatomi baris-baris dalam file format HEX

File program obyek dengan format HEX dari Intel berisikan baris-baris tulisan seperti terlihat dalam Gambar 4.

Setiap baris mengandung informasi tentang berapa banyak data dalam baris tersebut, alamat awal tempat penyimpanan data dalam baris tersebut, jenis baris dan sarana untuk memastikan kebenaran data yang dinamakan sebagai check sum. Dalam baris tersebut, setiap huruf (kecuali huruf pertama) mewakili satu bilangan heksa-desimal, dengan demikian setiap 2 huruf membentuk data satu byte yang terdiri dari 2 bilangan heksadesimal.

Rincian dari format tersebut sebagai berikut :

<!--[if !supportLists]-->1. <!--[endif]-->Huruf pertama dalam baris, selalu berisi tanda ":", merupakan kode identitas yang menyatakan baris tersebut berisikan kode-kode biner yang disimpan dalam format HEX dari Intel.

<!--[if !supportLists]-->2. <!--[endif]-->Huruf ke-2 dan ke-3 dipakai untuk menyatakan banyaknya data dalam baris yang dinyatakan dengan 2 angka heksa-desimal, sehingga banyaknya data dalam 1 baris maksimal adalah 255 (atau heksa-demimal FF).

<!--[if !supportLists]-->3. <!--[endif]-->Huruf ke 4 sampai 7, merupakan 4 angka heksa-desimal yang dipakai untuk menyatakan alamat awal tempat penyimpanan kode-kode dalam baris teks bersangkutan.

<!--[if !supportLists]-->4. <!--[endif]-->Huruf 8 dan 9 dipakai untuk menyatakan jenis teks data. Nilai 00 dipakai untuk menyatakan baris tersebut berisikan data biasa, 01 menyatakan baris tersebut merupakan baris terakhir.

<!--[if !supportLists]-->5. <!--[endif]-->Huruf ke 10 dan seterusnya adalah data. Setiap 2 huruf mewakili data 1 byte, sehingga jumlah huruf pada bagian ini adalah dua kali banyaknya data yang disebut pada butir 2 di atas.

<!--[if !supportLists]-->6. <!--[endif]-->2 huruf terakhir dalam baris merupakan check sum. Byte-byte yang disebut dalam butir 2 sampai 5 di atas dijumlahkan, hasil penjumlahan di-balik (inverted) sebagai bilangan check sum. (Hasil penjumlahan bisa menghasilkan nilai yang lebih besar dari 2 bilangan heksadesimal, namun hanya 2 bilangan heksa-desimal yang bobotnya terkecil yang dipakai).




Dasar Program Assembly

Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin dan bahasa level tinggi misalnya bahasa C atau Pascal. Bahasa C atau Pascal dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya. Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Sedangkan bahasa Assembly memakai kode Mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan penulisan program.

Program yang ditulis dengan bahasa Assembly terdiri dari label; kode mnemonic dan lain sebagainya, pada umumnya dinamakan sebagai program sumber (Source Code) yang belum bisa diterima oleh prosesor untuk dijalankan sebagai program, tapi harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner.

Program sumber dibuat dengan program editor biasa, misalnya Notepad pada Windows atau SideKick pada DOS, selanjutnya program sumber diterjemahkan ke bahasa mesin dengan menggunakan program Assembler. Hasil kerja program Assembler adalah "program objek" dan juga "assembly listing".

Program Objek berisikan kode kode bahasa mesin, kode-kode bahasa mesin inilah yang diumpankan ke memori-program prosesor. Dalam dunia mikrokontroler biasanya program objek ini diisikan ke UV EPROM, dan khusus untuk mikrokontroler buatan Atmel, program ini diisikan ke dalam Flash PEROM yang ada di dalam chip AT89C51 atau AT89C2051.

Assembly Listing merupakan naskah yang berasal dari program sumber, dalam naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan hasil terjemahan program Assembler. Tambahan tersebut berupa nomor memori-program berikut dengan kode yang akan diisikan pada memori-program bersangkutan. Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program yang ditulis.

Yang perlu diperhatikan adalah setiap prosesor mempunyai konstruksi yang berlainan, instruksi untuk mengendalikan masing-masing prosesor juga berlainan, dengan demikian bahasa Assembly untuk masing-masing prosesor juga berlainan, yang sama hanyalah pola dasar cara penulisan program Assembly saja.



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz1Vnpm4asMQuBMVVAAwHTzTfRf0IprW5SbeO8iCjmSKM0g80GcfREoBGxWVoz2mgPOekRkHH9B1s0Kt3o6pmqvzAyhQXUHiT4SOG9iDTh9EePQDyLjXIy1bTLuT-R51d80sjH2EV69Cob/s400/IMAGE002.JPG

Gambar 7


Proses Assembly

Konstruksi Program Assembly

Program sumber dalam bahasa Assembly menganut prinsip 1 baris untuk satu perintah, setiap baris perintah tersebut bisa terdiri atas beberapa bagian (field), yakni bagian Label, bagian mnemonic, bagian operand yang bisa lebih dari satu dan terakhir bagian komentar. Untuk membedakan masing-masing bagian tersebut dibuat ketentuan sebagian berikut:


o Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma.

o Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris, jika ada satu bagian yang tidak ada maka spasi atau TAB sebagai pemisah bagian tetap harus ditulis.

<!--[if !supportLists]-->· <!--[endif]-->Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonic.


Label mewakili nomor memori-program dari instruksi pada baris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju. Dengan demikian Label selalu mewakili nomor memori-program dan harus ditulis dibagian awal baris instruksi.

DisampingLabel dikenal pula Symbol, yakni satu nama untuk mewakili satu nilai tertentu dan nilai yang diwakili bisa apa saja tidak harus nomor memori-program. Cara penulisan Symbol sama dengan cara penulisan Label, harus dimulai di huruf pertama dari baris instruksi.

Mnemonic (arttinya sesuatu yang memudahkan diingat) merupakan singkatan perintah, dikenal dua macam mnemonic, yakni manemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari program Assembler ini dinamakan sebagai 'Assembler Directive'.

Operand adalah bagian yang letaknya di belakang bagian mnemonic, merupakan pelangkap bagi mnemonic. Kalau sebuah instrksi di-ibaratkan sebagai kalimat perintah, maka mnemonic merupakan subjek (kata kerja) dan operand merupakan objek (kata benda) dari kalimat perintah tersebut.

Tergantung pada jenis instruksinya, operand bisa berupa berbagai macam hal. Pada instruksi JUMP operand berupa Label yang mewakili nomor memori-program yang dituju misalnya LJMP Start, pada instruksi untuk pemindahan/pengolahan data, operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET.

Komentar merupakan bagian yang sekedar sebagai catatan, tidak berpengaruh pada prosesor juga tidak berpengaruh pada kerja program Assembler, tapi bagian ini sangat penting untuk keperluan dokumentasi.

Assembler Directive

Seperti sudah dibahas di atas, bagian Mnemonic dari sebuah baris perintah bisa merupakan instruksi untuk prosesor, maupun berupa Assembler Directive untuk mengatur kerja dari program Assembler. Mnemonic untuk instruksi prosesor, sangat tergantung pada prosesor yang dipakai, sedangkan mnemonic untuk Assembler Directive tergantung pada program Assembler yang dipakai. Meskipun demikian, terdapat beberapa Assembler Directive yang umum, yang sama untuk banyak macam program Assembler.

Assembler Directive yang bersifat umum tersebut, antara lain adalah

o ORG - singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai setelah perintah itu, misalnya ORG $1000 maka memori berikutnya yang dipakai Assembler adalah $1000. ORG berlaku untuk memori program maupun memori-data. Dalam hal penomoran memori, dikenal tanda $ sebagai awalan untuk menyatakan nomor memori dari baris bersangkutan. Misalnya :


ORG 1000

LJMP $+1000


Operand $+$500 mempunyai arti nomor memori-program bersangkutan ditambah dengan $500, karena instruksi LJMP ini terletak persis di bawah ORG $1000 maka nomor memori-program baris ini adalah $1000, sehingga operand $+$500 bernilai $1500 dan instruksi ini indentik dengan LJMP $1500

o EQU - singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol.

Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88, atau CR EQU $0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah $08.

o DB - singkatan dari DEFINE BYTE, dipakai untuk memberi nilai tertentu pada memori-program. Nilai tersebut merupakan nilai 1 byte, bisa berupa angka ataupun kode ASCII. DB merupakan Assembler Directive yang dipakai untuk membentuk teks maupun tabel.


ORG $0200

STRING DB 'Atmel AT89C2051'

PANJANG EQU $-STRING


<!--[if !supportLists]-->o <!--[endif]-->ORG $0200 memerintahkan program Assembler agar bekerja mulai dari memori-program nomor $0200, instruksi selanjutnya memerintahkan program Assembler agar mengisi memori-program nomor $0200 dan berikutnya dengan tulisan 'Atmel AT89C2051'' (yang diisikan adalah kode ASCII dari 'A', 't' dan seterusnya), PANJANG dari STRING bisa dihitung dengan cara PANJANG EQU $-STRING, yakni selisih dari nomor memori-program baris bersangkutan dikurangi dengan nomor awal memori-program yang diisi STRING.

<!--[if !supportLists]-->o <!--[endif]-->DW - singkatan dari DEFINE WORD, dipakai untuk memberi nilai 2 byte ke memori-program pada baris bersangkutan. Assembler Directive ini biasa dipakai untuk membentuk suatu tabel yang isinya adalah nomor-nomor memori-program.

<!--[if !supportLists]-->o <!--[endif]-->DS - singkatan dari Define Storage, Assembler Directive ini dipakai untuk membentuk variable. Sebagai variabel tentu saja memori yang dipakai adalah memori-data (RAM) bukan memori-program (ROM). Hal ini harus benar-benar dibedakan dengan Assembler Directive DB dan DW yang membentuk kode di memori-program. Dan karena DS bekerja di RAM, maka DS hanya sekedar menyediakan tempat di memori, tapi tidak mengisi nilai pada memori bersangkutan.