| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > При чем тут %rip ? |
| Автор: delgado 22.11.2011, 23:10 | ||||
| Всем доброго времени суток. Я хотел бы познакомится с ассемблером, но по ходу столкнулся с одной проблемой: у меня есть файл primes.s:
В строке 66 по задумке переменная j должна увеличиться на 1, но вместо этого вылетает segmentation fault когда я смотрю этот участок кода под отладчиком и дизассемблирую его, то выходит:
Пожалуйста объясните что здесь делает этот %rip регистр и как сделать так, чтобы адресация была прямой без этого регистра. |
| Автор: 500mhz 24.11.2011, 12:27 |
| может вам начать с 16 разрядных вариантов под мсдос? |
| Автор: delgado 24.11.2011, 21:15 | ||
Линукс как-то ближе ) И мне кажется, что начинать программировать под сегментную модель памяти тяжелее, чем плоскую. С опцией .code16 ассемблируется верно, но мне все таки хочется разобраться что я сделал не так. |
| Автор: 500mhz 24.11.2011, 21:36 |
| мне как то непонятно у вас сорец 32 разрадный, а дебуг 64. а RIP при том что в 64 разрядном варианте все обращения к памяти релативные по rip |
| Автор: delgado 25.11.2011, 19:14 | ||
| Мне непонятно тоже ) У меня 64 разрядами даже и не пахнет. Все делаю очень просто
Система: Linux 3.0-ARCH x86_64 Intel® Celeron® CPU 2.66GHz Я вот подумал может as по умолчанию в моей системе генерит 64 - битный код? Как тогда можно подавить настройки? |
| Автор: 500mhz 25.11.2011, 20:59 | ||
что то мне подсказывает что это не 32 разрядный адрес ))) как в прочем и это - movabs 0x208d048900601208,%eax мой вам совет, ставьте fasm под линюх и отладчик с INTEL ситаксисом, отпадет куча вопросов сразу |
| Автор: delgado 25.11.2011, 22:33 |
| Спасибо, кажется разобрался, дело не в as а в системе - по ходу у меня платформа x86-64, ну или система так думает ) Чтоб собрать правильно, нужно ковырять опции as и ld. Жаль fasm в репах к arch нет - придется качнуть отдельно ( |
| Автор: 500mhz 26.11.2011, 00:10 |
| мне вообще не понятно как as что то скомпилировал, он же вроде интел синтакс не понимает |