P. 1
Bahasa Assembler dalam C++ Lanjutan

Bahasa Assembler dalam C++ Lanjutan

|Views: 235|Likes:
Published by ayesite
Materi Awal
Materi Awal

More info:

Published by: ayesite on Apr 12, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

09/19/2015

pdf

text

original

Bahasa Assembly = Bahasa Pemograman yang me-respon perintah/pernyataan dengan bahasa mesin untuk memahami interaksi perangkat

keras & lunak komputer.

Assembler = Program yg mengkonversi kode program ke dalam bahasa mesin

Bahasa Mesin = Bahasa yang dibangun oleh sejumlah angka yang dapat dimengerti oleh CPU

Register = Memori kecepatan tinggi dalam CPU dan biasanya ada 2 huruf

Instruksi Bahasa Mesin = memerintahkan CPU untuk melaksanakan aksi sederhananya terdiri atas mnemonic ex : clc,inc,mov,add,int bisa terdiri atas operand(register,variabel,lokasi memori/nilai immediate) ex : mov ax,5 ; artinya memindahkan 5 ke dalam register ax mov ax,bx ; artinya ada 2 buah operand

Pernyataan/perintah Bahasa mesin = terdiri atas dua Instruksi dan Perintah Instruksi = Pernyataan yang dapat di eksekusi Perintah = Pernyataan yang menyediakan informasi untuk dapat membantu assembler dalammenghasilkan kode yang dapat di eksekusi Format umum : [name][mnemonic][operand][;comment] ex : Count DB 50 ; artinya DB memerintah memori untuk variabel bernama count dan memberi nilai awal 50

Syarat nama(variabel,label,simbol/katakunci) : 1. 31 karakter pertama yg dikenali 2. Karakter pertama tak boleh angka,tanpa spasi,boleh tanda(.) hanya

boleh pada karakter pertama saja 3. Tidak boleh gunakan kata kunci(direktif/perintah) ex Label : => add: mov ax,10; salah karena nama label dengan perintah add

Tugas CPU : 1. Menemukan instruksi dan mengeksekusi instruksi tersebut 2. Menyimpan data dalam memori/register 3. Melaksanakan perhitungan & perbandingan 4. Memperbarui penunjuk instruksi(percabangan)

CPU dibagi 2 ALU & CU ALU (Arithmetic Logic Unit) = melaksanakan operasi aritmatik,logic,dan penggeseran CU (Control Unit) = mengambil data dan instruksi dan serta menerjemahkan kode alamat untuk ALU

Register = Area penyimpan kecepatan tinggi yg langsung terhubung dengan ALU dan unit kendali. Ketika sesuatu diambil dari memori alamatnya dihitung oleh unit kendali dan dikirim melalui bus alamat(kabel pararel yg mengirim data antar bagian dalam CPU).Nilai dari memori(instruksi & data) dikirim balik ke CPU melalui bus data.Setiap operasi di CPU harus sinkron dengan clock, unit waktu paling dasar untuk instruksi mesin disebut siklus mesin/machine cycle Instruksi mesin dalam prosesor Intel umumnya 3-20 clock

Register terbagi atas : Register Data, Segmen,indeks,khusus,dan flag

Register Data : 1. AX atau akumulator (kiri AH dan kanan AL) AX register akumulator karena untuk operasi aritmatik 2. BX atau basis (kiri BH dan kanan BL) bisa melaksanakan operasi aritmatik dan perpindahan data dan memiliki pengalamatan khusus dan dapat menyimpan alamat memori yg menunjuk pada variabel lain, seperti register indeks(SI,DI,BP) 3. CX atau counter (kiri CH dan kanan CL) bekerja sebagai counter untuk instruksi pengulangan/looping 4. DX atau Data (kiri DH dan Kanan DL) punya peranan khusus dalam operasi perkalian dan pembagian

4 register yg sering dipakai ax ah al bh bx bl ch cx cl dh dx dl 16 bit 8 bit /integer /char

memberi warna blink R G B intensitas R G B latar huruf 0 0 0 0 0 0 0 1 jika ingin menampilkan karakter biru 8 4 2 1 8 4 2 1 menampilkan warna latar blink dan warna karakter merah terang 1 0 0 0 1 1 0 0 : 0x8C ditambah pake bahasa hexsa 1 1 1 1 : 0x4E Dasar merah Tulisan Kuning

Versi Int 86/ DOS #include <dos.h>// REGS #include <conio.h> #include <stdlib.h> //return exit succes #define VIDEO_INT 0x10 //HEKSA 10 videoint 86 int main(void) { union REGS in, out;

// H=NAMA AH=FIELD in.h.ah = 0x09; // HEKSA 9 in.h.al = 'Z'; // CETAK HURUF in.h.bh = 0x00; // HAL //in.h.bl = 0x14; // dasar biru tulisan red //in.h.bl = 0xac; // dasar hijau tulisan red //in.h.bl = 0x8c; // blink warna merah terang in.h.bl = 0x4e; // ? hasilkan apa ? in.h.ch = 0x00; // COUNT FONT DARI in.h.cl = 0x05; // COUNT FONT KE clrscr(); int86(VIDEO_INT, &in, &out); getch(); return EXIT_SUCCESS; }

VERSI ASSEMBLY #include <conio.h> #include <stdlib.h> #define VIDEO_INT 0x10 int main(void) { clrscr(); // MOV = BERI NILAI VARIABEL -AH asm mov ah, 0x09; // HEKSA 9 menggunakan opcode mov asm mov al, 0x41; // CETAK HURUF A asm mov bh, 0x00; // HAL asm mov bl, 0x0e; // COLOR FONT YELLOW

asm mov ch, 0x00; asm mov cl, 0x04 ; // COUNT FONT asm int VIDEO_INT; // INTERUPSI HEKSA 10 menggunakan opcode int getch(); return EXIT_SUCCESS; }

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->