Dev-C++

0

Zacząłem nauke C++ lecz zaraz na początku ma błędy zainstalowałem sobie Dev C++
i chce skompliwoać program i za każdym razem wsykakije mi błąd:
2 C:\Dev-Cpp\2 unable to run program file.

W Borland C++ idzie mi wszystko dobrze tylko gdy doszedłem do lekcji o wstawkach z assemblera to mi wywala błąd:

# pragma inline  
 
void main()   
{   
        asm mov dl, 81  
        asm mov ah, 2   
        asm int 33   
} 

I program się wysypuje przy:
asm int 33

Dodam że używam Windowsa XP może przez to :?:

0

zapomnij o przerwaniach w kompilacie dla trybu chronionego

0

To można to jakoś zrobić żeby działało ?
Jak wyłączyć tryb chroniony ? :d
Jeżeli sie <ort>w ogóle</ort> da i co to jest :-/

0

w dev obowiązuje składnia AT !!

0

jak wyłączyć tryb chroniony? używać DOSa :)

0

Jak już ktoś wspomniał w gcc /na nim opiera się dev/ stosuje sie składnie at&t.
W tej wersji program powiniem zadziałać:

void main()
{
        __asm volatile (
                        "movb   $81, %dl \n\t"
                        "movb   $02, %ah \n\t"
                        "int    $33"
                      );
}

czas na drobne wyjaśnienia:

skaładnia at&t to składnia at&t i tyle, trzeba się przyzwyczaić, '\n\t' oznacza zakończenie wiersza i przejście do kolejnego /w tym przypadku instrukcji/.

Jest tylko jeden problem, dev generuje pliki 32bit w formacie PE /pod winde/ a winda działa w trybie chronionym, tyle, że w ring3/poziom pracy zwykłych aplikacji/ pod 9x przerwania jeszcze zadziałają, natomiast pod nt już nie. Jest oczywiście rozwiązanie ? napisać sterownik :) Sterowniki działają w ring0 /poziom jądra systemu/ więc mogą używać przerwań. Aktualnie istnieje uniwersalny model sterowników - WDM. Dziala od na windzie od 98 oraz na NT. Pocieszę cię ? pod gcc skompilować sterownik jest bardzo ciężko...

0

Chyba troszke źle napisałem tego posta, widze że ze wstawkami z assemblera to chyba nici no ale jeszcze mi chodzi o ten dev cpp bo nie moge skompilować tam ani jednego program zawsze wyskakuje ten błąd
2 C:\Dev-Cpp\2 unable to run program file.
Nie wieczm czy źle kompiluje czy co ale jeszcze dobrze programu mi nie zkompilowało :/

0

Dziwne, pod dev'em pracowałem prawie rok - wszystko się pięknie kompilowało. Tylko, że dev ładował własne obiekty do kompilacji i w nowszych wersjach pusty program zajmował 100KB. Przeszedłem na MinGW + Developer Studio - mam większą kontrolę nad projektem i kompilacją, a po zastąpieniu oryginalnej biblioteki startowej własną pusty exec zajmuje 2KB.
Dobra, teraz poważnie: oprócz tego błędu /unable to run program file/ wyświetla coś jeszcze, napisz dokładnie co, a może coś cię poradzi.