Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Assembler в Delhi [D7, WinXP]


UserUserov ©   (2004-10-01 22:32:00) 

Я asm знаю не так хорошо, и у меня вопрос с исполь-
зованием его в Дельфях, скажем мне
нужно перейти на метку в цикле, но как ее объявить???


Anatoly Podgoretsky   (2004-10-02 10:46:00) [1]

DHDD   (02.10.04 08:42) [13]
Все чудесатее и чудесатее


Defunct   (2004-10-02 09:05:00) [2]

> Адрес метки сохраняется в коде.
в каком месте?

> Это не правила Дельфы, a asm 8086.
можно немного подробнее начиная с этого места.


DHDD   (2004-10-02 08:42:00) [3]

Адрес метки сохраняется в коде. Явно/относительно - глобально/локально. Это не правила Дельфы, a asm 8086. До свидания.


Defunct   (2004-10-02 08:25:00) [4]

> Сохраняется компилятором в exe

и там ее тоже нет, потому как метка - адрес.
метка есть только в исходнике.


DHDD   (2004-10-02 08:06:00) [5]

Сохраняется компиляторомв exe, извиняюсь!


Defunct   (2004-10-02 06:36:00) [6]

DHDD   (02.10.04 06:27) [9]

> @ - глобальная метка (под неё выделяется память глобальная)
> @@ - локальная метка (память выделяется в стёке)


Ну ты закрутил, еще и "стёк" приплел.

Хорошое утро плохого дня?

Под метки память не выделяется впринципе никогда. Метки это есть адреса кода/данных в памяти. Как и зачем "выделять память" под "адреса памяти"?


DHDD   (2004-10-02 06:27:00) [7]

Метка в asm'е должна начинаться с @ (собака)
@ - глобальная метка (под неё выделяется память глобальная)
@@ - локальная метка (память выделяется в стёке)


Германн   (2004-10-02 04:55:00) [8]

А как же тогда сейчас мучаются те, которым нужно писАть на ассэмблере?
Имхо, без локальных меток - жить ну очень трудно! Если конечно пишешь несколько процедур в одном блоке(файле).


Defunct   (2004-10-02 04:18:00) [9]

[6]
пройдет

ps: все это пережитки прошлого, в общем сейчас @@ никакой смысловой нагрузки не несет, просто для красоты.


Германн   (2004-10-02 04:07:00) [10]

Или у меня склероз, или как?
Имхо двойная собака в ассэмблере, который для РС, означала "локальную" метку!

2 Defunct ©   (02.10.04 02:33) [5]
А такой вариант "forward definition" пройдет? :

jmp @@Loop
@1:
...
@@Loop


Defunct   (2004-10-02 02:33:00) [11]

GanibalLector ©   (02.10.04 02:15) [4]

Ну вообще-то старые компиляторы воспримимали @@ как метку объявленную наперед (forward definition)

@Loop:
 Jmp @Loop

работало бы, а

 Jmp @Loop
@Loop:

выдало бы ошибку, что такой метки @Loop нет. @@ - говорило компилятору, что метка может располагаться ниже.

 jmp @@Loop
@@Loop:

работает везде, даже в BP. Поэтому лучше уж все метки рисовать с двумя собачками.


GanibalLector   (2004-10-02 02:15:00) [12]

Defunct
А,ну тогда понятно.Так бы сразу и сказал бы DrPass ©   (01.10.04 22:54) [1]


Defunct   (2004-10-02 02:12:00) [13]

GanibalLector ©   (02.10.04 01:59) [2]

для красоты


GanibalLector   (2004-10-02 01:59:00) [14]

2 DrPass
А на кой двойная собака???С одной все прекрасно работает!


DrPass   (2004-10-01 22:54:00) [15]


@@MyLabel:
 JNE @@MyLabel


Наверх

Титульная страница Поиск, карта сайта Написать письмо