Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Assembly ja C++

AdeRide [10.12.2004 23:04:19]

#

Voiko ASSEMBLYä ja C++:saa sotkea keskenään?

esim. kirjoittaa otsikko tiedosto, joka sisältää funktion, joka vuorostaan sisältää assembly -koodia.

Metabolix [11.12.2004 00:35:31]

#

Totta kai. Monet kääntäjät, ainakin kaupalliset sellaiset, tukevat ihan inline-assemblyä, VC++:ssa se toimii esimerkiksi näin:

#include <stdio.h>
#include <stdlib.h>
int main()
{
  // Arvotaan kaksi lukua, int a ja int b
  int a = rand();
  int b = rand();
  int c;

  // Assembly-pätkä alkaa
  asm__{
    mov eax, a;
    mov ecx, b;
    add eax, ecx;
    mov c, eax;
  } // Ja Assembly loppuu.

  // Nyt c = a + b. Tulostetaan luvut ja tulos
  printf("%i + %i = %i", a, b, c);

  return 0;
}

Tietysti monissa valmiissa kirjastoissa on käytetty Assemblyä, ja ainakin VC++:ssa saa näkyville ohjelman Assemblyksi käännettynä, koska kääntäjä muuttaa koodin ensin Assemblyksi ja vasta sitten binääriksi.

AdeRide [11.12.2004 12:13:05]

#

Ei toimi, valittaa kaikista noista ASSEMBLY -koodeista. Kääntäjäni on Microsoftin Visual C++ 6.0 Pro.

Missä mättää?

Metabolix [11.12.2004 12:22:36]

#

Tuli vahingossa alaviivat väärälle puolelle... asm__ on siis oikeasti __asm. Myös VC++:n Helpin käyttö olisi suotavaa, ja kääntäjän virheilmoituksetkin saa lukea ja ymmärtää, ei millään pahalla.

thefox [12.12.2004 14:19:41]

#

Myös _asm käy __asm:n tilalta. Lisäksi VC++ inline-asm rivien lopussa ei tarvitse ';'-merkkiä, se on kommenttimerkki.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta