Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синтаксическая ошибка при компиляции вставки 
V
    Опции темы
MastEdm
Дата 21.4.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Master
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 3.12.2005
Где: Москва, МГИУ

Репутация: нет
Всего: 2



Добрый вечер. Вопрос наверное ламерский, но всё же. Есть простенький код:
Код

#include <stdio.h>
#include <stdint.h>

struct {
    uint16_t limit;
    unsigned long base;
} __attribute__((packed)) idtr;

__asm__("sidt %0" : "=m" (idtr));
unsigned long idt_table = idtr.base;

int main() {

    return 0;
}


Компилирую gcc 4.0.1:

Код

$ gcc idtr.c 
idtr.c:9: error: syntax error before ‘:’ token
idtr.c:10: error: initializer element is not constant


В чем ошибка? 

Спасибо.
PM MAIL   Вверх
MastEdm
Дата 24.4.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Master
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 3.12.2005
Где: Москва, МГИУ

Репутация: нет
Всего: 2



Решил проблему так:

Код

#include <stdio.h>
#include <stdint.h>

struct idtr_t {
   uint16_t limit;
   unsigned long base;
}__attribute__((packed));


unsigned long foo(void) {
  idtr_t idtr;
  __asm__("sidt %0" : "=m" (idtr));
  return idtr.base;
}

int main(void) {
  unsigned long id = foo();
  printf("%08x", id);
  return 0;
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.