FreeBasic
Главная
Вход
Регистрация
Воскресенье, 03.03.2024, 14:28Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Исходники » Получение размера массива с помощью ASM вставок (Получение размера массива с помощью ASM вставок)
Получение размера массива с помощью ASM вставок
haavДата: Воскресенье, 14.10.2012, 07:12 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 1360
Репутация: 49
Статус: Offline
Получение размера массива с помощью ASM вставок


Вообще-то это можно сделать и без ASM вставок, попросту используя косвенную адресацию от начала массива, при том получая все данные которые закладывает туда компиль (значения начального\конечного индексов, кол-во мерностей и пр.), но вот попался такой пример, почему-бы не выложить smile

Автор: Gonzo

Code

function get_array_size(array() as integer) as Integer
     asm
         mov esi, [ebp+8]
         add esi, 8
         mov eax, [esi]
         mov [function],eax
     end asm
End Function

Dim aa(5) As Integer

? get_array_size(aa())

sleep


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Форум » Freebasic » Исходники » Получение размера массива с помощью ASM вставок (Получение размера массива с помощью ASM вставок)
  • Страница 1 из 1
  • 1
Поиск: