LINUX.ORG.RU

AT&T синтаксис. помочь нужна! ;)


0

0

Здравствуйте :)

as не хочет компилить s-файл.
ругается воть на это:

        ret     4

пишет "test.s:60: Error: suffix or operands invalid for `ret'"

ну что не так? :(

а еще на команды pushad и popad ругается...

test.s:35: Error: no such instruction: `pushad'
test.s:42: Error: no such instruction: `popad'

ну все правильно ведь! пробовал pushadl, popadl - не помогло :(
anonymous

ой... с ret уже разобрался. надо было ret $4. но с pushad помогите!!! ПОжалуйста :( ну никак не пойму, что с ним не так :(

anonymous
()
Ответ на: комментарий от MikeDM

ну PUSHA ведь толкает в стек AX, CX, DX, BX, SP, BP, SI, DI... т.е. 16-битные.. а мне 32-битныйе. их ведь команда pushad в стек помещает

anonymous
()

Товарищь у тебя какая архитектура? Для справки открываю страшную тайну что в х86-64 следующих комант НЕТ:

pusha/pushad, papa/papad, daa, das, aaa, aas, aad, aam, into, bound, lahf, sahf, lds, les

И дело тут не в синтаксисе ассемблера а в том что 32 и 64 бита у интела ПОЧТИ совместимы, есть НЕСОВМЕСТИМЫЕ изменения в архитектуре которые не дадут просто перекомпилировать старый 32 битный код в 64 бита. Читайти IA 64 and 32 Software Development Manual v1, v2a, v2b

anonymous
()
Ответ на: комментарий от anonymous

А я не путаю! Я про x86-64 а не про Itanium! x86-64 НЕСОВСМ СОВМЕСТИМА с x86, то выражено в частности в ОТСУТСТВИИ перечисленных мной команд, изменении методов адресации (в x86-64 модель памяти ТОЛЬКО flat и сегментная модель там сильно упрощена), изменена модель регистров (их не только стало больше но и регистры AH, BH, CH, DH в 64 моде несуществуют, кодами этих регистров адресуются DIL, SIL, BPL, SPL что уже делает некоторый код неработоспособным а команды неприемлемыми). Кто не верует возмите справочник по системе команд (у интела на сайте) и убедитесь что обозначенных мной команд просто нет. (вернее в x86-64 соответсвующие коды операций помечены как invalid). Читайте книги ребята и не верьте в то чему вас учат в институте...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.