Source code :
Nama file: CharDanNomor
.model flat, stdcall ; model memori flat(untuk 32bit windows), calling convention stdcall
option casemap:none ; nama fungsi case sensitif
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc
includelib c:\masm32\lib\kernel32.lib
STD_OUTPUT_HANDLE equ -11 ;standard output
;Seksi/ bagian 1 untuk data yang sudah di inisialisasi
.DATA
;0 1 2 3 4 5 6 7 8 9 10 0
isi_pesan db 30h, 20h, 31h, 20h, 32h, 20h, 33h, 20h, 34h, 20h, 35h, 20h, 36h, 20h, 37h, 20h, 38h, 20h, 39h, 20h, 31h, 30h ; null terminator string
panjang_pesan equ $-isi_pesan ; 15 desimal
;Bagian 2 data yang belum diketahui
.DATA?
consoleOutHandle dd ?
bytesWritten dd ?
; Bagian 3 Code program
.CODE
start:
; saya akan menghindari penggunaan invoke dulu untuk sekarang
; karena ini merupakan dasar
push STD_OUTPUT_HANDLE ; masukkan data ke stack, pada kasus ini, ini merupakan parameter fungsi
call GetStdHandle ; panggil fungsi, nilai return berada di eax
mov [consoleOutHandle], eax ; simpan nilai returnnya
;Fungsi WriteConsole memerlukan 5 parameter, menurut MSDN
push 0 ; reserved (belum digunakan, hanya cadangan)
push offset bytesWritten ; karakter yang berhasil ditulis
push panjang_pesan ; sesuai deskripsi, panjang karakter pesan
push offset isi_pesan
push consoleOutHandle ; console handle
call WriteConsole ; nama fungsi yang dipanggil
push 0 ; return exit code
call ExitProcess
end start
File make,
Nama file: set appname=CharDanNomor
if exist %appname%.exe del %appname%.exe
c:\masm32\bin\ml.exe /c /coff /Zd %appname%.asm
c:\masm32\bin\link.exe /subsystem:console /entry:start %appname%.obj
dir
cmd
pause
Link YouTube:
Tidak ada komentar:
Posting Komentar