Dizilerin ve yapıların bir arada kullanımından bahsettim.
Güzel bir örnek.
Güzel bir örnek.
.386
INCLUDE Irvine32.inc
; Array of Structs
my_Dogs STRUCT
age_Of_Dog dd ?
weight_Of_Dog dd ?
my_Dogs ENDS
.const
amount_Of_Dogs db 12
.data?
Dogs db amount_Of_Dogs*my_Dogs (?) ; amount_Of_Dogs*my_Dogs = 15 * 8 = 120 BYTE
.code
start PROC
mov edx, 3 ; Bilgilerine erişmek istediğimiz köpeğin numarası: 4 (0'dan itibaren başladığı için.)
mov eax, offset Dogs
shl edx,3 ; EDX = EDX * 8 = 24 ; Bilgilerine erişmek istediğimiz köpeğin my_Struct'daki offseti: 24
add eax, edx ; EAX = 4. Köpeğin yaşının adresi
mov dword ptr [eax], 10 ; 4. köpeğin yaşını 10 olarak atadık.
add eax, 4 ; EAX = 4. Köpeğin kilosunun adresi
mov dword ptr [eax], 50 ; 4. köpeğin kilosunu 50 olarak atadık.
mov ebx, dword ptr [eax-4] ; EBX = 4. Köpeğin yaşı = 10
mov ecx, dword ptr [eax] ; ECX = 4. Köpeğin kilosu = 50
; Burada temel amacımız yapıları diziler için kullanmaktı.
ret
start endp
end startBu içeriği görmek için giriş yapın.