1 / 25

Pointer

Pointer. 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

rudolf
Download Presentation

Pointer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  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 • Menginvertmasukan • Bisadioperasikan single bit maupun multi bit Input Output 1 0 0 1 • Sintak : NOT variabel • Contoh : • Mov al, 11001001b • Not al ; menghasilkan 00110110b

  12. Mov ax,0abcdh • Not ax ; ax = 5432h

  13. AND • Menghasilkan 0 jikasalahsatuinputnya 0 Input1 Input2 Output 0 0 0 0 1 0 1 0 0 1 1 1 • Sintak : AND Operan1, Operan2 • Flag register : OF, SF, ZF, PF, CF

  14. Contoh : • Mov al, 1 • Mov ah, 2 • And ah, al ; ah = 0 • Mov ax, 01234h • Moxbx, 01111h • And ax, bx ; ax = 1010h

  15. OR • Menghasilkankeluaran 1 jikasalahsatuinputnya 1 Input1 Input2 Output 0 0 0 0 1 1 1 0 1 1 1 1 • Sintak : OR Operan1, Operan2 • Flag : OF, SF, ZF, PF, CF

  16. Contoh : • Mov al, 123 • Mov ah, 23 • Or ah, al ; ah = 127 • Mov ax, 0abcdh • Movbx, 0bbcch • Or ax, bx ; ax = BBCDh

  17. XOR • Menghasilkankeluaran 1 jikakeduainputnyaberbeda Input1 Input2 Output 0 0 0 0 1 1 1 0 1 1 1 0 • Sintak : XOR Operan1, Operan2 • Flag : tidakada yang terpengaruh

  18. Contoh : • Mov al, 123 • Mov ah, 23 • Xor ah, al ; ah = 108 • Mov ax, 0abcdh • Movbx, 0bbcch • Xor ax, bx ; ax = 1001h

  19. TEST • Untukmengetesapakahsuatu bit adadalamsuatuvariabelatautidak • Sintak : TEST Operan1, Operan2 • Flag : OF, SF, ZF, PF, CF • Output akantetapaktifselamamasihadahasil bit operasinya yang bernilai 0 (ZF = 1) • Bisadioperasikan single maupun multi bit

  20. Contoh : MOV AL, 066h TEST AL, 1 ; ZF = 1 TEST AL, 2 ; ZF = 0 TEST AL, 00001000b ; ZF = 1 TEST AL, 32 ; ZF = 0 MOV BX, 0dfeah ; ZF = 0 TEST BX, 5 ; ZF = 1 TEST BX, 0AH ; ZF = 0 TEST BX, 0f00h ; ZF = 0

  21. SHL • Menggeser bit-bit kekiri. Bit yang ditinggalkanakandisetke 0 • Sintak : SHL Operan1, Operan2 • Jikapenggeseranlebihdari 1x maka Operan2 harus CL atau CX • Flag : OF, ZF, PF, CF, SF • Sebagai operator pengganti MUL (perkalianberbasis 2) • Contoh : • Mov al, 3 • Movcl, 3 • Shl al, cl ; al = 3 * 2^3 = 24

  22. SHR • Menggeser bit-bit kekanan. Bit yang ditinggalkanakandisetke 0 • Sintak : SHR Operan1, Operan2 • Jikapenggeseranlebihdari 1x maka Operan2 harus CL atau CX • Flag : OF, ZF, PF, CF, SF • Sebagai operator pengganti DIV (pembagianberbasis 2) • Contoh : • Mov al, 63 • Movcl, 3 • Shr al, cl ; al = 63 div 2^3 = 7

  23. ROL • Memutar bit-bit kekiri. Bit yang ditinggalkantidakakandisetke 0 • Sintak : ROL Operan1, Operan2 • Bit paling kiriakandimasukkanke CF • Flag : OF, CF • Contoh : • Mov al, 3 • Movcl, 3 • Rol al, cl ; al = 24

  24. ROR • Memutar bit-bit kekanan. Bit yang ditinggalkantidakakandisetke 0 • Sintak : ROR Operan1, Operan2 • Bit paling kananakandimasukkanke CF • Flag : OF, CF • Contoh : • Mov al, 3 • Movcl, 3 • Ror al, cl ; al = 96

  25. Tugas • Hitunglahhasiloperasibilanganberikutini : • ABCDH AND FEH • ABCDH OR FEH • NOT ABCDH • XOR ABCDH, FEH • SHR ABCDH, 3 • ROR ABCDH, 3 • Tuliskanlangkahnyadenganmenuliskanbilanganbinerdarimasing-masingoperannya

More Related