Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2020, 12:12   #1
Kirill_1103
Пользователь
 
Регистрация: 14.04.2020
Сообщений: 11
По умолчанию Ассемблерная вставка c++

Пытаюсь сделать ассемблерную вставку на c++. Выходит ошибка сегментации.
Код:
         asm(" mov  %0,%%esi\n\t"
             " mov  %1,%%edi\n\t"
             "n: mov  (%%esi),%%al\n\t"
           ::"m"(str1),"m"(str2)
    );
str1,str2 - указатели на char.
И можно ли как-нибудь вставлять интеловский ассемблер?

Последний раз редактировалось Kirill_1103; 27.10.2020 в 12:47.
Kirill_1103 вне форума Ответить с цитированием
Старый 27.10.2020, 21:13   #2
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

В строку компиляции добавьте параметр -masm=intel и сможете компилировать подобное
Код:
#include <iostream>

using namespace std;

int main()
{
    int32_t CountWord=0;
//    int R;
    __asm__ __volatile__
    (
  //  ".intel_syntax\n\t"
        //"mov eax, %0\n\t"
        "inc eax\n\t"
        "mov %0, eax\n\t"
 //   ".att_syntax\n\t"
        :"=m"(CountWord)
        :"m"(CountWord)
        :"eax"
    );

    cout << CountWord << endl;
    return 0;
}
Это просто бессмысленный пример с синтаксисом intel

Мне кажется, что
Код:
mov %0, %%esi
означает не взятие адреса, а копирование 4 байт из памяти.
Не соображу, как взять адрес при помощи mov - нужно лезть и читать доки, а вот при помощи lea - легко
Код:
lea %0, %%esi

Последний раз редактировалось FPaul; 27.10.2020 в 21:51.
FPaul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. и ассемблерная вставка Afli Помощь студентам 1 19.05.2015 21:42
Ассемблерная вставка на Си faop Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 11.03.2011 11:03
Ассемблерная вставка! treki Помощь студентам 0 16.06.2010 00:15
Ассемблерная вставка Arigato Общие вопросы Delphi 1 25.10.2009 21:47