• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Assembler w c++

VPS Starter Arubacloud
0 głosów
2,054 wizyt
pytanie zadane 1 listopada 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
zamknięte 2 listopada 2017 przez Jakub 0

Witam serdecznie, ostatnio poznałem taki artykuł (zaznaczam że o asm nic nie wiem) :https://www.p-programowanie.pl/cpp/polaczenie-assemblera-i-cpp/

Jednak przy testowaniu tych funkcji (pracuje w visual studio) wyskakuje mi błąd kompilacji:


C2400    błąd składni wbudowanego asemblera w "kod operacji"; znaleziono "("    dostep do zmiennej lokalnej  

lub

Błąd    C2290    składnia C++ "asm" zignorowana. Użyj __asm.    dostep do zmiennej lokalnej  

za to nie ma błędu kompilacji przy przykładach ze strony microsoft: https://msdn.microsoft.com/pl-pl/library/45yd4tzz.aspx

Nie wiem w ogóle z czego wynikają błędy kompilacji. Będę bardzo wdzięczny za pomoc :). Mam jeszcze takie pytanko czy asm użyty w c++ ma takie same funkcje jak czysty? Bardzo przepraszam i wiem że pytanie może wydawać się żałosne ale naprawdę o assembler nic nie wiem, nie mogę znaleźć informacji dotyczących wykorzystania go pod c++ a naprawdę zawsze mnie interesował (a po co mam pisać w czystym asm skoro w c++ mogę go wykorzystać). Dziękuje za wyrozumiałość i pozdrawiam

komentarz zamknięcia: Juz znam odpowiedz
1
komentarz 1 listopada 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
edycja 1 listopada 2017 przez Eryk Andrzejewski

Podaj jakiego używasz kompilatora. Wstawki języka asemblera, z tego co mi wiadomo, nie należą do standardu języka C++ i każdy kompilator może je implementować inaczej.

Ups, nie zauważyłem, że podałes. Wybacz.

1 odpowiedź

+1 głos
odpowiedź 1 listopada 2017 przez j23 Mędrzec (194,920 p.)
wybrane 2 listopada 2017 przez Jakub 0
 
Najlepsza

W artykule masz przykłady dla g++, w Visualu wygląda to nieco inaczej (czyt. o wiele lepiej):

int fun2(int a, int b)
{
        int suma;
 
        __asm
        {
                mov eax, [ebp + 8] ; można też tak: mov eax, a
                add eax, [ebp + 12] ; mov eax, b
                add eax, 1 
                mov [ebp-4], eax
        }
 
        return suma;
}

 

1
komentarz 2 listopada 2017 przez DragonCoder Nałogowiec (36,500 p.)
Jak sie nie myle sa 3 glowne assemblery. Wiec kod assemblerowy, az tak bardzo nie roznia sie. Zamiast ide, mozesz uzywac edytora i podpisac samemu kompilator i tyle :)
komentarz 2 listopada 2017 przez Jakub 0 Pasjonat (23,120 p.)

Ale przecież asm we wstawkach też musi być dopasowany do architektury procesora, na ARM kod ze wstawkami języka asemblera dla x86 Ci się nie skompiluje.

Tak jak mówię o asm nic nie wiem i tu widać moją niewiedzę... tzn że kiedy coś piszemy w assembler to musimy się martwić nie tylko o odpowiedni kompilator ale też jego składnia musi być dopasowana do architektury?? Myślę żeby korzystać ze wstawek asemblerowych ponieważ umiem tylko podstawy c++ i nie ma sensu jakoś porządnie brać się za kolejny język (w tym przypadku za asm), zamiast tego trochę bym z nim poeksperymentował :)

1
komentarz 2 listopada 2017 przez DragonCoder Nałogowiec (36,500 p.)
Umiem podstawy, wiec po co Ci aaembler? Ja osobiscie wstawki z assemblera uzywalbym tylko przy wiekszych projektach, gdzie liczy sie wydajnosc. Opanuj lepiej pythona, bo to fajne i mile udogodnienie z C++
1
komentarz 2 listopada 2017 przez j23 Mędrzec (194,920 p.)
Daruj sobie te wstawki. Dziś prawie w ogóle nie stosuje się ich z wyjątkiem może 1% specyficznych zastosowań, z którymi prawdopodobnie nie będziesz miał do czynienia.
komentarz 2 listopada 2017 przez Jakub 0 Pasjonat (23,120 p.)
spoko. pytanie zadałem tylko z ciekawości. Myślę że zerknę na asm dopiero kiedy jakiś program będzie tego potrzebował

Podobne pytania

0 głosów
1 odpowiedź 1,076 wizyt
pytanie zadane 24 października 2017 w Assembler przez Frendom Pasjonat (18,900 p.)
0 głosów
0 odpowiedzi 793 wizyt
pytanie zadane 22 marca 2017 w Assembler przez bamboleo320 Początkujący (450 p.)
0 głosów
0 odpowiedzi 111 wizyt
pytanie zadane 14 stycznia 2017 w Assembler przez Jędrzej Dembowski Użytkownik (740 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...