Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pointer. Karakteristik Operasi Assembly  Lebar data tujuan dan asal harus sama! Lebar data tidak sama => invalid opcode  Operasi 8bit disimpan pada.

Presentasi serupa


Presentasi berjudul: "Pointer. Karakteristik Operasi Assembly  Lebar data tujuan dan asal harus sama! Lebar data tidak sama => invalid opcode  Operasi 8bit disimpan pada."— Transcript presentasi:

1 Pointer

2 Karakteristik Operasi Assembly  Lebar data tujuan dan asal harus sama! Lebar data tidak sama => invalid opcode  Operasi 8bit disimpan pada register 8bit  Operasi 16bit bisa disimpan di register 16bit atau disimpan dalam 2 buah register 16bit  Operasi perkalian 16bit x 16bit = 32bit => disimpan dalam pasangan register AX + DX

3  Penyimpanan sebagai 1 variabel => menggunakan pointer  Pointer akan memungkinkan mikroprosesor melakukan perpindahan data sesuai dengan lebar tujuan, sehingga data dengan lebar yang berbeda bisa diakses dengan mudah

4  Contoh : 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 => "**Error** BAGI.ASM(20) Operand types do not match"

5 Tipe Data NamaLebar (byte) DB (define byte)1 DW (define word)2 DD (define doubleword)4 DF (define farword)6 DQ (define quadword)8 DT (define tenbyte)10

6  Contoh : A DB 4 ; 1 byte, nilai awal='4' B DB 4,4,4,2,? ; 1*5 byte, nilai awal=4,4,4,2,? C DB 4 DUP(5) ; 1*4 byte, nilai awal='5' D DB 'HAI !!' ; 6 byte berisi 6 karakter E DW ? ; 1 word tidak diketahui isinya F DW ?,?,? ; 3 word tidak diketahui isinya G DW 10 DUP(?) ; 10 word tidak diketahui isinya H DD ? ; 1 DoubleWord tanpa nilai awal I DF ?,? ; 2 FarWord tanpa nilai awal J DQ 0A12h ; 1 QuadWord, nilai awal='0A12' K DT 25*80 ; 1 TenBytes, nilai awal='2000' L EQU 666 ; Konstanta, L=666 M DB '123' ; String '123' N DB '1','2','3' ; String '123' O DB 49,50,51 ; String '123'

7 Penempatan Data  Data ditempatkan pada memori dengan urutan terbalik : MSB menempati memori dengan alamat lebih tinggi daripada LSB  Contoh :

8 Penggunaan Pointer  Sintak : Tipedata PTR Operan  Contoh : TData : JMP Proses ; Lompat ke Proses A DW 01EFh ; 2 Byte B DW 02FEh ; 2 Byte D DD ? ; 4 Byte Proses: MOV AL,BYTE PTR A ; AL=EF, AX=?EF MOV AH,BYTE PTR A+1 ; AH=01, AX=01EF MOV BX,B ; BX=02FE MOV WORD PTR D,AX ; D=??01EF MOV WORD PTR D+2,BX ; D=02FE01EF

9 Manipulasi Bit dan Logika

10 Bit dan Logika  Operasi terkecil dalam mikroprosesor Operasi per-bit  Operasi lebih efisien dan efektif serta cepat  Untuk operasi port io dan register  Operasi bit : SHL, SHR, ROL, ROR, dll  Operasi logika : NOT, AND, OR, XOR

11 NOT  Menginvert masukan  Bisa dioperasikan single bit maupun multi bit InputOutput  Sintak : NOT variabel  Contoh : Moval, b Notal; menghasilkan b

12 Movax,0abcdh Notax; ax = 5432h

13 AND  Menghasilkan 0 jika salah satu inputnya 0 Input1Input2Output  Sintak : AND Operan1, Operan2  Flag register : OF, SF, ZF, PF, CF

14  Contoh : Moval, 1 Movah, 2 Andah, al; ah = 0 Movax, 01234h Moxbx, 01111h Andax, bx; ax = 1010h

15 OR  Menghasilkan keluaran 1 jika salah satu inputnya 1 Input1Input2Output  Sintak: OR Operan1, Operan2  Flag : OF, SF, ZF, PF, CF

16  Contoh : Moval, 123 Movah, 23 Orah, al; ah = 127 Movax, 0abcdh Movbx, 0bbcch Orax, bx; ax = BBCDh

17 XOR  Menghasilkan keluaran 1 jika kedua inputnya berbeda Input1Input2Output  Sintak: XOR Operan1, Operan2  Flag : tidak ada yang terpengaruh

18  Contoh : Moval, 123 Movah, 23 Xorah, al; ah = 108 Movax, 0abcdh Movbx, 0bbcch Xorax, bx; ax = 1001h

19 TEST  Untuk mengetes apakah suatu bit ada dalam suatu variabel atau tidak  Sintak: TEST Operan1, Operan2  Flag: OF, SF, ZF, PF, CF  Output akan tetap aktif selama masih ada hasil bit operasinya yang bernilai 0 (ZF = 1)  Bisa dioperasikan single maupun multi bit

20  Contoh : MOVAL, 066h TESTAL, 1; ZF = 1 TESTAL, 2; ZF = 0 TESTAL, b; ZF = 1 TESTAL, 32; ZF = 0 MOV BX, 0dfeah; ZF = 0 TEST BX, 5; ZF = 1 TESTBX, 0AH; ZF = 0 TESTBX, 0f00h; ZF = 0

21 SHL  Menggeser bit-bit ke kiri. Bit yang ditinggalkan akan diset ke 0  Sintak: SHL Operan1, Operan2  Jika penggeseran lebih dari 1x maka Operan2 harus CL atau CX  Flag: OF, ZF, PF, CF, SF  Sebagai operator pengganti MUL (perkalian berbasis 2)  Contoh : Moval, 3 Mov cl, 3 Shlal, cl; al = 3 * 2^3 = 24

22 SHR  Menggeser bit-bit ke kanan. Bit yang ditinggalkan akan diset ke 0  Sintak: SHR Operan1, Operan2  Jika penggeseran lebih dari 1x maka Operan2 harus CL atau CX  Flag: OF, ZF, PF, CF, SF  Sebagai operator pengganti DIV (pembagian berbasis 2)  Contoh : Moval, 63 Mov cl, 3 Shral, cl; al = 63 div 2^3 = 7

23 ROL  Memutar bit-bit ke kiri. Bit yang ditinggalkan tidak akan diset ke 0  Sintak: ROL Operan1, Operan2  Bit paling kiri akan dimasukkan ke CF  Flag: OF, CF  Contoh : Moval, 3 Mov cl, 3 Rolal, cl; al = 24

24 ROR  Memutar bit-bit ke kanan. Bit yang ditinggalkan tidak akan diset ke 0  Sintak: ROR Operan1, Operan2  Bit paling kanan akan dimasukkan ke CF  Flag: OF, CF  Contoh : Moval, 3 Mov cl, 3 Roral, cl; al = 96

25 Tugas  Hitunglah hasil operasi bilangan berikut ini : ABCDH AND FEH ABCDH OR FEH NOT ABCDH XOR ABCDH, FEH SHR ABCDH, 3 ROR ABCDH, 3  Tuliskan langkahnya dengan menuliskan bilangan biner dari masing-masing operannya


Download ppt "Pointer. Karakteristik Operasi Assembly  Lebar data tujuan dan asal harus sama! Lebar data tidak sama => invalid opcode  Operasi 8bit disimpan pada."

Presentasi serupa


Iklan oleh Google