Pages

Teknologi Sistem Informasi

ingin belajar. about TI

TYPE DATA PADA PEMOGRAMAN ASSAMBLER


Untuk memudahkan dalam pengaksesan data tersebut. Adapun tipe data yang terdapat pada
assembler dapat anda lihat pada gambar berikut.
----------------------------------------------
NAMA UKURAN
----------------------------------------------
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
-------------------------------------------
Gambar.  Berbagai Tipe Data
Sebagai contohnya lihatlah bagaimana tipe data pada gambar diatas.
digunakan :
.MODEL SMALL
.CODE
ORG 100h
TData :
JMP Proses
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'
Proses : ;
;
;
END Tdata
Pada baris pertama("A DB 4") kita mendefinisikan sebanyak satu byte
untuk variabel dengan nama "A", variabel ini diberi nilai "4".
Pada baris kedua("B DB 4,4,4,2,?") kita mendefinisikan sebanyak 5 byte yang berpasangan untuk variabel dengan nama "B". Tiga byte pertama pada variabel "B" tersebut semuanya diberi nilai awal "4", byte ke empat diberi nilai awal 2 sedangkan byte ke lima tidak diberi nilai awal.

Pada baris ketiga("C DB 4 DUP(5)") kita mendefinisikan sebanyak 4 byte data yang diberi nilai awal "5" semuanya (DUP=Duplikasi). Jadi dengan perintah DUP kita dapat mendefinisikan suatu Array.
Pada baris keempat("D DB 'HAI !! '") kita mendefinisikan suatu string dengan DB. Untuk mendefinisikan string selanjutnya akan selalu kita pakai tipe data DB. Bila kita mendefinisikan string dengan DW maka hanya 2 karakter yang dapat dimasukkan, format penempatan dalam memorypun nantinya akan membalikkan angka tersebut.
Pada baris kelima("E DW ?") kita mendefinisikan suatu tipe data Word yang tidak diberi nilai awal. Nilai yang terdapat pada variabel "E" ini bisa berupa apa saja, kita tidak perduli.

Pada baris keduabelas("L EQU 666") kita mendefinisikan suatu konstanta untuk variabel "L", jadi nilai pada "L" ini tidak dapat dirubah isinya. Pada variabel M, N, O kita mendefinisikan suatu string "123" dalam bentuk yang berbeda.
Ketiganya akan disimpan oleh assembler dalam bentuk yang sama, berupa angka 49, 50 dan 51.

Pada program-program selanjutnya akan dapat anda lihat bahwa kita selalu melompati daerah data("TData:JMP Proses"), mengapa demikian ? Bila kita tidak melompati daerah data ini maka proses akan melalui daerah data ini. Data-data program akan dianggap oleh komputer sebagai suatu intruksi yang akan dijalankan sehingga apapun mungkin bisa terjadi disana. Sebagai contohnya akan kita buat sebuah program yang tidak melompati daerah data, sehingga data akan dieksekusi sebagai intruksi. Program ini telah diatur sedemikian rupa untuk membunyikan speaker anda, pada akhir data diberi nilai CD20 yang merupakan bahasa mesin dari intruksi INT 20h.
.MODEL SMALL
.CODE
ORG 100h
Tdata:DB 0E4h,61h,24h,0FEh,0E6h,61h,0B9h,0D0h,7h,0BBh,9Ah
DB 2h,8Bh,0D1h,51h,34h,2h,0E6h,61h,0D1h,0C3h,73h,6h
DB 83h,0C1h,0h,0EBh,0Bh,90h,52h,2Bh,0D1h,87h,0D1h,5Ah
DB 81h,0C1h,34h,8h,0E2h,0FEh,59h,0E2h,0E2h,0CDh,20h
END Tdata

WELCOME TO