Sadece dizelerin tanımlanmasından bahsettim.
Sonraki konularda tanımlanan bir dizeden veri nasıl alınır veya bir dizeye veri nasıl yazılır ondan bahsedeceğim. ( stos ve lods )
Sonraki konularda tanımlanan bir dizeden veri nasıl alınır veya bir dizeye veri nasıl yazılır ondan bahsedeceğim. ( stos ve lods )
.386
INCLUDE Irvine32.inc
; Basic of Strings
.data
; Null-Terminated: Çoğu Windows API işlevi, özellikle basit string işlemleri için Null-Terminated dizileri kullanır.
my_String_1 db "Hello World!", 0 ; Null karakter (0) ile sonlandırılan string. (Null-Terminated (C style))
my_String_2 db "Hello World!", Null ; Null karakter (0) ile sonlandırılan string. (Null-Terminated (C style))
my_String_3 db 13, "Hello World!" ; Boyutu belirtilerek sonlandırılan string. (Length-Prefix (Pascal style))
my_String_4 db "Hello World!", '$' ; '$' karakteri ile sonlandırılmış string.
my_String_5 db "Hello World!" ; Sonlandırılmamış string.
my_String_6 db "Hello", 20h, "World!", 0 ; Bazı harflerin HEX olarak tanımlandığı ve Null karakter (0) ile sonlandırılan string.
my_String_7 db 48h, 65h, 6Ch, 6Ch, 6Fh, 20h, 57h, 6Fh, 72h, 6Ch, 64h, 21h, 0 ; Harflerin HEX olarak tanımlandığı ve Null karakter (0) ile sonlandırılan string. (Null-Terminated)
my_String_8 db "Hello ",
"World!", 0
; Yukarıdaki 8 farklı gösterimde de Hello World! yazısı tanımlanıyor.
; Ekstra
; Unix, Linux ve MacOS'larda sonraki satıra geçmek için 0x0A (Line Feed - LF) ASCII karakter kodunu kullanılıyor.
; Windows'ta ise 0x0D (Carriage Return - CR) ve 0x0A (Line Feed - LF) ASCII karakter kodları birlikte kullanıyor.
; Windows'un alt satıra geçmek için bu iki karakteri birlikte kullanmasının sebebi:
; Tarihsel olarak, daktilo ve teleks makinelerinde kullanılan "Carriage Return" (Yazıcının Satır Başına Dönmesi) ve "Line Feed" (Kağıdın Bir Satır İlerletilmesi) hareketlerinin bir kombinasyonu olan CR-LF, Windows'un metin dosyalarında alt satıra geçmeyi temsil etme şekli haline gelmiştir.
; Windows'larda alt satıra geçmek için 0x0D veya 0x0A ASCII karakter kodları ayrı ayrı da kullanılabilir fakat bazı text editörlerin bunu algılayamayıp metni düz bir metinmiş gibi görmesine sebep olabilir.
my_Lines_1 db "First line.", 0Dh, 0Ah,
"Second line.", 0
my_Lines_2 db 48h, 65h, 6Ch, 6Ch, 6Fh, 0Dh, 0Ah, ; Hello + Alt Satıra Geç
57h, 6Fh, 72h, 6Ch, 64h, 0 ; World
start PROC
ret
start endp
end startBu içeriği görmek için giriş yapın.

