C++ - указатели!


[ Комментарии ] [ Добавить комментарий ] [ Доска объявлений HackZone ]

Отправитель: kolobok0, October 29, 1998, 15:30:45:

В ответ на: C++ - указатели! (отправитель: DIEH, October 28, 1998, 19:00:17):



: Чем отличаются FAR и обычные указатели в C/C++?

В ассемблере NEAR указатель (или короткий) - тот который указывает на данные относительно текущего сегмента (пример : mov ax,word ptr [bx] - переслать слово из текущего сегмента (обычно ds), со смещением из регистра bx в регистр ax).
FAR указатель (или длиный) - тот который поазывает на данные с указанием сегмента и смещения (пример : mov ax, word ptr es:[bx] - см. выше но относительно сегмента из es). Соответственно при реальной адрессации NEAR занимает 2 байта, FAR - 4 байта.
Для самого языка C/C++ какой указатель будет использоваться - скрыт в толще компилятора (да и не нужно в эти тонкости вникать), т.е. компилятор сам решает данный вопрос (об использовании того или иного указателя). Данная информация возможно может потребоваться при состыковки C/C++ с каким-нибудь другим зверем на уровне obj.
Кстати для защищенного режима (если меня не подводит склероз) всегда используется полные адреса (или смещения) - то биш 4 байтные.
Всё остальное (см.выше) сущая правда.


Комментарии:


Цитировать сообщение


[ Комментарии ] [ Доска объявлений HackZone ]