Johannes Simatupang, MKom, Cobit5-F NIDN : 0318017001 Pemrograman Bahasa Assembly Johannes Simatupang, MKom, Cobit5-F NIDN : 0318017001 Day-3 OpenSolusi.Info (c) 2014
MindMap For Learning Process
Materi Pertemuan Ke-3 Operasi Aritmatika -- Lanjutan Pointer Manipulasi Bit dan Logika ADDRESSING MODES Output String
Operasi Aritmatika (1) -- Kurang SUB BX, BX ; BX=0
Operasi Aritmatika (2) -- Kurang
Operasi Aritmatika (2) -- Kurang
Operasi Aritmatika (2) -- Kurang
Operasi Aritmatika (2) -- Kali
Operasi Aritmatika (2) -- Kali
Operasi Aritmatika (2) -- Pembagian
Operasi Aritmatika (2) -- Pembagian
Pointer (1) Untuk mengatasi Register Variabel yg berbeda Bit Address CASE: A DB 17 ; DB=8 bit jadi A=8 bit B DW 35 ; DW=16 bit jadi B=16 bit | MOV AL,A ; 8 bit dengan 8 bit MOV AX,B ; 16 bit dengan 16 bit. MOV AX, A tidak bisa dilakukan karena berbeda 8 bit dengan 16 bit **Error** BAGI.ASM(20) Operand types do not match
Pointer (2) Tipe Data DB<Define Byte> 1 BYTE DW<Define Word> 2 BYTE DD<Define DoubleWord> 4 BYTE DF<Define FarWords> 6 BYTE DQ<Define QuadWord> 8 BYTE DT<Define TenBytes> 10 BYTE
Pointer (3) Contoh Tipe Data
Pointer (4)
Data in Memory
Menggunakan Pointer DataType PTR Operand
Aplikasi Pointer menyimpan hasil perkalian 16 bit didalam 1 varibel 32 bit
Bit Manipulation And Logic (1) Not Operator And Operator A Not (A) 1 A B A and B 1 Setiap Bit yg di and dg 0 akan menghasilkan bit 0 dan setiap bit di and dg 1 akan menghasilkan bit itu sendiri
Bit Manipulation And Logic (2) OR Operator XOR Operator Setiap Bit yg di or dg 1 akan menghasilkan bit 1 dan setiap bit di or dg 0 akan menghasilkan bit itu sendiri A B A or B 1 A B A xor B 1 Setiap bilangan yg di xor dg bilangan yg sama akan menghasilkan bilangan 0
Bit Manipulation And Logic (3) Perintah TEST untuk mengetahui nilai pada suatu bit Contoh : TEST AX,0Fh JNZ Proses ; Lompat jika Zerro flag 0 Perintah SHL (Shift Left) Operator SHL akan menggeser operand1 ke kiri sebanyak operand2secara per bit. Kemudian bit kosong yang telah tergeser di sebelah kanannya akan diberi nilai nol. Instruksi : MOV AX,3Fh MOV CL,3 SHL AX,CL ; Geser 3 bit ke kiri
Adressing Modes (1) No Adressing Mode Format Segment Register 1 Immediate Data Tidak Ada 2 Register 3 Direct Displacement DS Label 4 Register Indirect [BX] [BP] SS [SI] [DI] 5 Base Relative [BX]+Displacement [BP]+Displacement
Adressing Modes (2) No Adressing Mode Format Segment Register 6 Direct Indexed [DI]+Displacement DS [SI]+Displacement 7 Base Indexed [BX][SI]+Displacement [BX][DI]+Displacement [BP][SI]+Displacement SS [BP][DI]+Displacement
Adressing Modes (3) Larangan Pengcopyan Data Pengcopyan data antar segment register, seperti: MOV DS,ES solusi menggunakan register general purpose sebagai perantara MOV AX,ES MOV DS,AX
Adressing Modes (4) Larangan Pengcopyan Data 2. Pemberian nilai untuk segment register(DS, ES, CS, SS) secara langsung, seperti: MOV ES,0B800h solusi menggunakan register general purpose sebagai perantara MOV AX,0B800h MOV ES,AX
Adressing Modes (4) Larangan Pengcopyan Data 3. Pengcopyan data langsung antar memory, seperti: MOV MemB,MemA solusi menggunakan register general purpose sebagai perantara MOV AX,MemA MOV MemB,AX
Adressing Modes (5) Larangan Pengcopyan Data 4. Pengcopyan data antar register yang berbeda tipenya(8 bit dengan 16 bit) tanpa menggunakan pointer, seperti: MOV AL,BX solusi menggunakan pointer
Adressing Modes (6) Pengcopyan Data tercepat dinamakan Immediate Addressing Immediate Addressing adalah suatu pengcopyan data untuk suatu register 8,16 atau 32(80386) bit langsung dari suatu angka. Contohnya : MOV AX,50h MOV EAX,11223344h <80386>
Adressing Modes (7) Pengcopyan Data antar register disebut Register Addressing Pengcopyan antar register ini harus digunakan register yang berukuran sama, seperti AL dan BH, CX dan AX
Adressing Modes (8) Pengcopyan Data Direct Adressing Pengcopyan antar register ini harus digunakan register yang berukuran sama, seperti AL dan BH, CX dan AX TData : JMP Proses A DB 12h B DB 59h Proses : MOV AL,A ; Direct Addressing MOV AH,B ; Direct Addressin