Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› VS(cpp) _asm{} need help |
Посл.ответ | Сообщение |
|
Создано: 13 мая 2016 22:21 · Личное сообщение · #1 |
|
Создано: 13 мая 2016 22:26 · Личное сообщение · #2 гугл не? http://ccfit.nsu.ru/~kireev/lab2/lab2reg.htm eip/ip (Instraction Pointer register) ≈ регистр-указатель команд. Регистр eip/ip имеет разрядность 32/16 бит и содержит смещение следующей подлежащей выполнению команды относительно содержимого сегментного регистра cs в текущем сегменте команд. Этот регистр непосредственно недоступен программисту, но загрузка и изменение его значения производятся различными командами управления, к которым относятся команды условных и безусловных переходов, вызова процедур и возврата из процедур. Возникновение прерываний также приводит к модификации регистра eip/ip. ----- [nice coder and reverser] ![]() |
|
Создано: 14 мая 2016 00:37 · Личное сообщение · #3 alex_e_m пишет: прошу поделится информацией о популярных подводных камнях в этой (_asm in VS) теме. Какие уж там "подводные камни". Об этой теме написаны горы материалов. Вот на русском: http://microsin.net/programming/avr/mixing-c-and-asm-code.html In English: http://www.codeproject.com/Articles/15971/Using-Inline-Assembly-in-C-C ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 14 мая 2016 03:06 · Поправил: dosprog · Личное сообщение · #4 Короче, регистр EIP нельзя модифицировать командой MOV. Нет такой инструкции у процессора. Поэтому и не определено резервное слово "EIP", а значит, участвуя в инструкции, оно может быть только меткой имени. О чём и было сообщено. Есть же список зарезервированных компилятором имён, это в HELP'e. Ещё, например, нет и операций MOV [память],[память]. - Тоже обругают при попытке использования. Какие претензии к ассемблеру?.. plutos пишет: Вот на русском: Так там же не инлайн, а линковка отдельно сассемблированного кода.. plutos пишет: In English: Там GCC.. ------------------------------------------------------------------------ В общем, надо пробовать и смотреть на результаты. То, что скомпилируется и будет работать, - то, значит, верно. Вот и все подводные камни. Как правило, кому реально необходима эта __asm{}, те написанием мануалов и факов не заморачиваются Типичное применение - кодеки видео и звука, драйвера устройств. - Это довольно специфические области программирования. (И то норовят не выходить за пределы Cи.) --Добавлено-- plutos пишет: Ты, dosprog, так уж не переживай. ..Не аккуратненько..(с) Это я к тому, что тема всёже не такая уж и обсуждаемая. ![]() |
|
Создано: 14 мая 2016 05:28 · Поправил: plutos · Личное сообщение · #5 |
![]() |
eXeL@B —› Программирование —› VS(cpp) _asm{} need help |
Эта тема закрыта. Ответы больше не принимаются. |