Antwort schreiben

C++ mit Assembler

Di 3. Apr 2012, 20:31

Ich war eigentlich immer in der Annahme das bei Assembler nur der linke Operand verändert wird was hier aber nicht der Fall ist !
kompiliert mit dem g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3
Code:
#include <iostream>
#include <stdio.h>
using namespace std;

int main( void )
{

int nVar1 = 3, nVar2 = 4;

   cout << "Zahl 1: " ;
   cin >> nVar1;

   cout << "Zahl 2: " ;
   cin >> nVar2;


asm ("add %%edx, %%eax \n"
: "=a" (nVar1)
: "d" (nVar2),"a" (nVar1)
);

   cout <<"ergibt = "<<(nVar1)<<endl;

return(0);
}

Di 3. Apr 2012, 20:31

Re: C++ mit Assembler

Di 3. Apr 2012, 20:41

Kann es sein das du den AT&T-Syntax verwendest ?

Re: C++ mit Assembler

Di 3. Apr 2012, 20:51

Miss Rabbit hat geschrieben:Kann es sein das du den AT&T-Syntax verwendest ?


ja schon aber die Befehle müssten doch ähnlich sein ....

Re: C++ mit Assembler

Mi 4. Apr 2012, 09:54

Ich war eigentlich immer in der Annahme das bei Assembler nur der linke Operand verändert wird was hier aber nicht der Fall ist !


Intel-Syntax: Ziel Quelle
At&t-Syntax: Quelle Ziel

BTW Du solltest statt
Code:
add %%edx, %%eax

eher
Code:
addl %%edx, %%eax

verwenden da sonst der Assembler rät und das glaub mir das willst du oft nicht :P

Re: C++ mit Assembler

Mi 4. Apr 2012, 09:58

@xRamses JA DAS IST ES !

... ist ja verwirrend , bin eher den Intel-Syntax gewöhnt ....

... ist wie Bei Visual Basic ... da mach ich auch immer ";" am ende xD
Antwort schreiben



Bei iphpbb3.com bekommen Sie ein kostenloses Forum mit vielen tollen Extras
Forum kostenlos einrichten - Hot Topics - Tags
Beliebteste Themen: Erde, Österreich, Wien, USA, NES

Impressum | Datenschutz