POINTER & MANIPULASI BIT DAN LOGIKA
Tipe-tipe data yang terdapat pada assembler : Nama Ukuran DB (Define Byte) 1 byte DW (Define Word) 2 byte DD (Define Doubleword) 4 byte DF (Define Farwords) 6 byte DQ (Define Quardwords) 8 byte DT (Define Tenbyte) 10 byte EQU =
MENGGUNAKAN POINTER Untuk memindahkan data dari variabel maupun register yang berbeda tipe datanya, dapat dilakukan dengan menggunakan perintah PTR. Format penulisan untuk perintah PTR adalah : TipeData PTR operand Contoh : BYTE PTR A BYTE PTR A+1 WORD PTR A WORD PTR A+2
Contoh penggunaan pointer di dalam program .MODEL SMALL .CODE ORG 100H DATA: JMP MULAI A DW 01EFH B DW 02FEH D DD ? MULAI: 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 INT 20H END DATA
MANIPULASI BIT DAN LOGIKA Gerbang NOT Berfungsi untuk melakukan komplemen 1 terhadap suatu nilai Syntax : NOT OPERAND Gerbang NEG Berfungsi untuk melakukan komplemen 2 terhadap suatu nilai Syntax : NEG OPERAND Gerbang AND Berfungsi untuk melakukan operasi logika AND Syntax : AND TUJUAN, SUMBER
Gerbang OR Berfungsi untuk melakukan operasi logika OR Syntax : OR TUJUAN, SUMBER Gerbang XOR Berfungsi untuk melakukan operasi logika XOR Syntax : XOR TUJUAN, SUMBER TEST Perintah TEST akan meng-AND kedua nilai operand, tetapi hasilnya tidak mempengaruhi nilai kedua operand tersebut. Syntax : TEST OPERAND1,OPERAND2
SHL (SHIFT LEFT) Berfungsi untuk menggeser operand1 sebanyak operand2 secara per bit ke kiri. Syntax : SHL OPERAND1, OPERAND2 Contoh: MOV AX,1364H MOV CX,0003H SHL AX,CX PROSESNYA AX : 0001 0011 0110 0100 Proses pergeseran Geser 1 : 0010 0110 1100 1000 Geser 2 : 0100 1101 1001 0000 Geser 3 : 1001 1011 0010 0000
SHR (SHIFT RIGHT) Berfungsi untuk menggeser operand1 sebanyak operand2 secara bit ke kanan. Syntax : SHR OPERAND1, OPERAND2 Contoh: MOV AX,1364H MOV CX,0003H SHR AX,CX PROSESNYA AX : 0001 0011 0110 0100 Proses pergeseran Geser 1 : 0000 1001 1011 0010 Geser 2 : 0000 0100 1101 1001 Geser 3 : 0000 0010 0110 1100