Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.114.132] |
|
Сообщ.
#1
,
|
|
|
Тут такой вопросик возник: как при компиляции программы на C (компилятор gcc) использовать в ней ассемблерные вставки? т.е. к примеру в Visual C++ __asm ?
|
Сообщ.
#2
,
|
|
|
Ну так что? Я почти разобрался: __asm__ ("nop") - работает, но к примеру __asm__ ("mov ax,bx") не работает, что за хрень. ???
|
Сообщ.
#3
,
|
|
|
и как раз синтаксис команд "nop" совапдает с Intel'овским, а вот mov ax, bx - нет:)
|
Сообщ.
#4
,
|
|
|
man gas поможет
вместо mov ax,bx следует писать movw \%bx,\%ax Вкратце - к каждой интеловской мнемонике команды добавляем размер операндов (b, w, l; в случае с movz будет соответственно два размера), источник и назначение меняем местами, спереди к каждому регистру приписываем знак процента, к каждому числовому значению - знак доллара, адреса пишем просто числами или меткой (без всяких квадратных скобок). В общем, кому надо, ищите в инете мануалы, я так всё сразу и не упомню. Кстати, есть также проги для преобразования оттуда и туда. |