Stepel Poziom 18

Joined: 28 Sep 2005 Posts: 460 Location: Piaseczno
|
#1
13 Nov 2008 20:58 zmienna do wstawki asemblerowej Dev C++ |
|
|
|
Witam ,
| Code: |
#include <iostream>
using namespace std;
int port=0x378;
int dane=0x01;
void outport(int port,int dane);
int main()
{
outport(port,dane);
cout <<"D0 ustawione na 1";
getchar();
return 0;
};
void outport(int port,int dane)
{
asm(".intel_syntax noprefix"); //asembler - INTEL
asm("mov dx, _port"); //do rej DX podajemy adres portu
asm("mov al, _dane"); // do rejAL podajemy bajt danych
asm("out dx, al"); // wysylanie
asm(".att_syntax prefix"); //żeby nie było błędu kompilacji.
}; |
Tak program działa, natomiast jeśli usune przypisanie wartości zmiennym i wpisze outport(xxxx,xxxx) to nie.. czemu tak jest? Nie znam dobrze C++ . Czytałem troche w necie i dowiedziałem się, że zmienne globalne powinny tak działać. Jeśli ktoś ma pomysł to byłbym wdzięczny. Pozdrawiam.
|
|
Akane Poziom 18

Joined: 02 Jun 2003 Posts: 544 Location: JO90, JN49
|
#2
14 Nov 2008 00:23 Re: zmienna do wstawki asemblerowej Dev C++ |
|
|
|
Tak to jest z darmowymi narzędziami. W Twoim przykładzie mov pobierał wartość globalnej zmiennej zamiast tej ze stosu.
| Code: |
void outport(int port,int dane)
{
asm(".intel_syntax noprefix");
asm("mov dx, [ebp+8]");
asm("mov al, [ebp+12]");
asm("out dx, al");
asm(".att_syntax prefix");
} |
|
|