assembly-256 warna
weekend penuh dengan tugas :)
ya alhamdulillah karena ada tugas jadi bisa posting artikel lagi..
tugasnya kali ini: mencetak 256 warna.
excited banget pengen nyelesain ni soal...tapi sampe sekarang belum berhasil...hehe
yang penting prosesnya toh..
hasil sementara:
nampaknya sederhana ya...tapi.....
panjang bin lebar codenya....cekidot!
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Proses
Kal0 DB ' '
Proses:
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,00000000b ; warna hitam
MOV BH,00 ; Halaman tampilan 0
MOV DL,00 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV BL,00011001b ;warna biru
MOV BH,00 ; Halaman tampilan 0
MOV DL,01 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV BL,00100000b ; warna hijau
MOV BH,00 ; Halaman tampilan 0
MOV DL,02 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,0111111b ; biru muda
MOV BH,00 ; Halaman tampilan 0
MOV DL,03 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01001100b ;merah
MOV BH,00 ; Halaman tampilan 0
MOV DL,04 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01010101b ;ungu
MOV BH,00 ; Halaman tampilan 0
MOV DL,05 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10100000b ;hijau terang
MOV BH,00 ; Halaman tampilan 0
MOV DL,06 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10000000b ;abu2
MOV BH,00 ; Halaman tampilan 0
MOV DL,07 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11000000b ;merah
MOV BH,00 ; Halaman tampilan 0
MOV DL,08 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11100000b ;kuning
MOV BH,00 ; Halaman tampilan 0
MOV DL,09 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10010000b ;biru
MOV BH,00 ; Halaman tampilan 0
MOV DL,10 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10100000b ;hijau
MOV BH,00 ; Halaman tampilan 0
MOV DL,11 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10110000b ;biru muda terang
MOV BH,00 ; Halaman tampilan 0
MOV DL,12 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11110000b ;putih
MOV BH,00 ; Halaman tampilan 0
MOV DL,13 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11010000b ;ungu muda
MOV BH,00 ; Halaman tampilan 0
MOV DL,14 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01101001b ;kuning kecoklatan
MOV BH,00 ; Halaman tampilan 0
MOV DL,15 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01111111b ;putih
MOV BH,00 ; Halaman tampilan 0
MOV DL,16 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
INT 20h ; Selesai, kembali ke DOS
END TData
saya jadi agak berpikir, code diatas kurang efektif dan boroosss...
kayaknya ada cara yang bisa menghemat memori ... entah cara apakah itu.
...waiting inspiration...
ya alhamdulillah karena ada tugas jadi bisa posting artikel lagi..
tugasnya kali ini: mencetak 256 warna.
excited banget pengen nyelesain ni soal...tapi sampe sekarang belum berhasil...hehe
yang penting prosesnya toh..
hasil sementara:
nampaknya sederhana ya...tapi.....
panjang bin lebar codenya....cekidot!
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Proses
Kal0 DB ' '
Proses:
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,00000000b ; warna hitam
MOV BH,00 ; Halaman tampilan 0
MOV DL,00 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV BL,00011001b ;warna biru
MOV BH,00 ; Halaman tampilan 0
MOV DL,01 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV BL,00100000b ; warna hijau
MOV BH,00 ; Halaman tampilan 0
MOV DL,02 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,0111111b ; biru muda
MOV BH,00 ; Halaman tampilan 0
MOV DL,03 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01001100b ;merah
MOV BH,00 ; Halaman tampilan 0
MOV DL,04 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01010101b ;ungu
MOV BH,00 ; Halaman tampilan 0
MOV DL,05 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10100000b ;hijau terang
MOV BH,00 ; Halaman tampilan 0
MOV DL,06 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10000000b ;abu2
MOV BH,00 ; Halaman tampilan 0
MOV DL,07 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11000000b ;merah
MOV BH,00 ; Halaman tampilan 0
MOV DL,08 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11100000b ;kuning
MOV BH,00 ; Halaman tampilan 0
MOV DL,09 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10010000b ;biru
MOV BH,00 ; Halaman tampilan 0
MOV DL,10 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10100000b ;hijau
MOV BH,00 ; Halaman tampilan 0
MOV DL,11 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10110000b ;biru muda terang
MOV BH,00 ; Halaman tampilan 0
MOV DL,12 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11110000b ;putih
MOV BH,00 ; Halaman tampilan 0
MOV DL,13 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,11010000b ;ungu muda
MOV BH,00 ; Halaman tampilan 0
MOV DL,14 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01101001b ;kuning kecoklatan
MOV BH,00 ; Halaman tampilan 0
MOV DL,15 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,01111111b ;putih
MOV BH,00 ; Halaman tampilan 0
MOV DL,16 ; Posisi X
MOV DH,00 ; Posisi Y
MOV CX,1 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
INT 20h ; Selesai, kembali ke DOS
END TData
saya jadi agak berpikir, code diatas kurang efektif dan boroosss...
kayaknya ada cara yang bisa menghemat memori ... entah cara apakah itu.
...waiting inspiration...
hasni curhatnya di blogspot ternyata :p
ReplyDeletehehehehe ketahuan deh :)
ReplyDelete