ادامه پیاده سازی آرایه
۱۴۰۰ آبان ۶, پنجشنبه ساعت ۱۴:۵۴آرایه ها رو به صورت تو در تو میسازم و به صورت پشت سر هم میخونم ...
در ادامه تصمیم دارم کد c که در بکند کارم برای نوشتن آرایه نوشتم رو اجرا کنم. به این شکل پیاده سازی آرایه رو در خود کد میتونم انجام بدم و آرایه های c رو هم اجرا کنم.
برنامه ای که نوشتم به طور کامل از malloc و free پشتیبانی میکنه. اما ساختن struct و خوندن اون و تعریف اون به شکل آرایه چلنج بعدی من هست ...
var arr = [ "test2" : [ "a" : "val2" ] ];
printf("%s\n", arr["test2"]["a"] );
خروجی برنامه :
push %ebp
mov %esp,%ebp
sub $,%esp
sub $,%esp
leal -16(%ebp),%eax
mov %eax,0(%esp)
call array_init 0x648343cc
add $,%esp
sub $,%esp
leal -16(%ebp),%eax
mov %eax,0(%esp)
mov 0x5827f1ad,%eax
mov %eax,4(%esp)
sub $,%esp
leal -28(%ebp),%eax
mov %eax,0(%esp)
call array_init 0x6483438f
add $,%esp
sub $,%esp
leal -28(%ebp),%eax
mov %eax,0(%esp)
mov 0x5827f1b3,%eax
mov %eax,4(%esp)
mov 0x5827f1b5,%eax
mov %eax,8(%esp)
call array_set 0x648343ce
add $,%esp
leal -28(%ebp),%eax
mov %eax,8(%esp)
call array_set 0x648343b6
add $,%esp
leal -16(%ebp),%eax
mov %eax,-4(%ebp)
sub $,%esp
mov 0x5827f1c1,%eax
mov %eax,0(%esp)
mov -4(%ebp),%eax
sub $,%esp
mov -4(%ebp),%eax
mov %eax,0(%esp)
mov 0x5827f1c9,%eax
mov %eax,4(%esp)
call array_get 0x6483441a
add $,%esp
sub $,%esp
mov %eax,0(%esp)
mov 0x5827f1cf,%eax
mov %eax,4(%esp)
call array_get 0x648343f6
add $,%esp
mov %eax,4(%esp)
call printf 0x5fb3210
add $,%esp
leave
ret
val2