Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2010, 06:48   #1
Billy Spleen
Пользователь
 
Регистрация: 22.01.2010
Сообщений: 11
По умолчанию Специальные знаки

Хотелось бы создать маленькую темку по поводу специальных знаков. Часто встречаю в коде знаки, такие как @ , & но не знаю что они означают и какой смысл в себе несут.
Billy Spleen вне форума Ответить с цитированием
Старый 06.02.2010, 11:09   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Это такие символы из таблицы ASCII, с кодами @ ( at ) - 40h, &(комерческое И) - 26h.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 06.02.2010, 14:06   #3
Billy Spleen
Пользователь
 
Регистрация: 22.01.2010
Сообщений: 11
По умолчанию

ASCII коды меня не интересуют, если что я их и в отладчике посмотреть могу. Меня интересует для чего они используются как например : - индекстый оператор или например lea - загрузка эффективного адреса и т.д.
Какой смысл в себе несут эти символы? Вот пример
mov ax, @data , но это один лишь из примеров. хотелось бы узнать поподробнее

могу лишь догадыватся из написанного что & это логическая команда and?

Последний раз редактировалось Billy Spleen; 06.02.2010 в 14:20.
Billy Spleen вне форума Ответить с цитированием
Старый 06.02.2010, 14:41   #4
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

@data в данном контексте обозначает константу сегмента данных.
$ - текущий адрес.
$$ - абсолютный адрес. В Windows он по дефолту равен смещению указанному в PE заголовке.
Например можно определить общий размер кода:

mov esi, data_block
mov edi,0x10000
mov ecx,data_size
cld
rep movsb
ret

data_block:
dq 0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFF FF
db "Hello world!"
dd 0xFFFFFFFF,3.7483
data_size=$-data_block ; константа заданная для транслятора.

Еще есть абсолютная метка:

@@:
jmp @b ; Прыгнет к ближайшей абсолютной метке до текущей инструкции.
jmp @f ; Прыгнет к ближайшей абсолютной метке после текущей инструкции.
@@:

Но это конечно сильно зависит от синтаксиса самого транслятора.
"Тяжело в учении, легко в бою" - А.В. Суворов

Последний раз редактировалось Ivan_32; 06.02.2010 в 14:45.
Ivan_32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Специальные знаки Billy Spleen Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 15.02.2010 07:46
Специальные каталоги Бутаков_Сергей Общие вопросы Delphi 2 07.12.2009 07:30
Вместо русского знаки ? SwiP SQL, базы данных 5 06.04.2009 23:27
Специальные символы HunterMan Win Api 5 05.06.2008 00:17
Водяные знаки nikleb PHP 1 26.10.2007 13:33