C++ i asembler
Ostatnio zmodyfikowano 2015-09-11 14:57
CacholaPL Temat założony przez niniejszego użytkownika |
C++ i asembler » 2015-08-25 12:01:57 Witam, chciałbym w programie w C++ wywołać funkcję asemblerową. Funkcja ta sprawdza czy wciśnięty został klawisz i zwraca kod ASCII MOV AH,10H INT 16H Chciałbym zwracaną wartość przypisać do zmiennej w C++, ale nie mam pojęcia jak to zrobić :/ |
|
Piastlis |
» 2015-08-25 12:33:12 |
|
CacholaPL Temat założony przez niniejszego użytkownika |
» 2015-08-25 13:27:01 Nadal nie rozumiem o co chodzi :/ Próbowałem jeszcze tak, ale niezbyt chce działać: #include <iostream>
using namespace std;
int main() { asm( "mov al, 1" ); if( al == 32 ) { cout << "Wcisnieto Spacje" << endl; } } |
|
pekfos |
» 2015-08-25 14:38:56 To, co chcesz osiągnąć, nie zadziała. asm( "mov al, 1" ); if( al == 32 )
|
Tym bardziej to.. |
|
mateczek |
Przerwania Biosu » 2015-09-06 12:47:23 Int 16h to wywołanie przerwanie biosu. Chcesz z tego skorzystać pod Windowsem?? Czy twój komputer ma w ogóle Bios?? Bo Windows nawet Ci nie puści takiego kodu który z przestrzeni użytkownika próbuje się dorwać do sprzętu :P. Może napisanie sterownika w trybie jądra to by puścił ale w zwykłym programie nie przejdzie !!!
Taki kod jak proponujesz przeszedł by co najwyżej w win98 bo ten nie miał jeszcze takich zabezpieczeń i ochrony pamięci. I wiem, że windows 98 był ostatnim systemem M$ gdzie bezpośrednie odwołania do portów przechodziły. W nowszych trzeba było sterownik instalować i obsługiwać porty przy pomocy API (przerwaniami się nie bawiłem:P)
Tak czy siak assembler nie jest uniwersalny i tutaj jak chcesz pisać to potrzebne są informacje jaki komputer?? jaki system operacyjny docelowy?? Oraz jaki kompilator c++?? (bo pewnie ciut inaczej będzie BorlandzieC++ ciut inaczej w MSvisualu i trochę inaczej w gcc)??
[url]https://pl.wikibooks.org/wiki/C/%C5%81%C4%85czenie_z_innymi_j%C4%99zykami[/url]
|
|
kmlkamilek |
» 2015-09-11 14:57:04 |
|
« 1 » |