как вернуть с подпрограммы на ассемблере два и более значения?

Предыдущая тема Следующая тема Перейти вниз

как вернуть с подпрограммы на ассемблере два и более значения?

Сообщение  12val12 в Чт Сен 24, 2009 10:18 pm

вот стандартный пример а хелпе
Код:

Function AddFive(ByVal num As Integer) As Integer
    Asm
        mov eax, [num]
        add eax, 5
        mov [Function], eax
    End Asm
End Function

Dim i As Integer = 4

Print "4 + 5 ="; AddFive(i)

а как вернуть из подпрограммы асемблера два значения ?
( mov [Function], eax
mov [Function2], edx )..

12val12

Сообщения : 14
Дата регистрации : 2009-09-23

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: как вернуть с подпрограммы на ассемблере два и более значения?

Сообщение  tux в Пт Сен 25, 2009 2:28 am

function всего одна, чтобы вернуть несколько знаечний, нужно либо создать структуру переменных, и сохранять значения в них, а вохвращать всю структуру целиком, либо передавать в качестве параметров переменные по ссылке, и в них сохранять результат, кароче вариантов куча (еще мона массивы использовать, глобальные переменные и тд...)
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: как вернуть с подпрограммы на ассемблере два и более значения?

Сообщение  Eric-S в Пт Сен 25, 2009 8:48 am

Ну да. И всё это уже обсуждалось.

В прочем с ассемблером можно извратиться и заталкивать значения ручками в стек.
Но и вытаскивать значения, придёться самостоятельно.
Для асма это классический вариант, а вот с более высокоуровневыми языками это никак не согласуеться!

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: как вернуть с подпрограммы на ассемблере два и более значения?

Сообщение  12val12 в Пт Сен 25, 2009 4:06 pm

спасибо за ответы ..я думал будет простой хитрый вариант .оказалось как я и думал с извратом

12val12

Сообщения : 14
Дата регистрации : 2009-09-23

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: как вернуть с подпрограммы на ассемблере два и более значения?

Сообщение  Eric-S в Пт Сен 25, 2009 4:14 pm

Угу. Ща!
Во-первых всёеваринаны не такие уж и хитрые.

Можно например захватить память, записать туда значения, а из функции возвращать указатель.
Ну дык это и будет структура или массив, смотря с какой стороны смотреть.
А иначе и не склеить данные.

Есть вообще-то одно исключения, для булевых значений.
Вот их можно вместе складывать и всё будет ок.

А функция, хошь не хоьшь, а возвращает только одно значение.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: как вернуть с подпрограммы на ассемблере два и более значения?

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения