Forum: assembler i c++

Forum huvudsida -> Programmering -> assembler i c++

Sidor: 1

Till botten

Dojjan 22:37 - 2:a Juli 2005 | Post #1
Medlem
Inlägg: 114


Skicka PM
Kan nån förklara det här:

asm("mov %%ebp, %0":"=m"(oldEBP));


oldEBP är en unsigned int för övrigt. Jag vet att mov flyttar data, men vad i all världen gör "%%" där och vad betyder :"=m"?

jag antar att det flyttar in värdet 0 i oldEBP, eller har jag fel?




Dojjan 11:13 - 5:e Juli 2005 | Post #2
Medlem
Inlägg: 114


Skicka PM
Ingen på sidan som kan assember?




Independence 11:22 - 5:e Juli 2005 | Post #3
Administratör
Inlägg: 1800


Skicka PM
Jag kan inte ett dyft assembler tyvärr Smiley

-------------------------

Vi är riddarna som säger fiskbulle!





ozamosi 15:51 - 5:e Juli 2005 | Post #4
Administratör
Inlägg: 1129


Skicka PM
Ush... GNU ASM - lika lättläst som BrainFuck...

Om jag fattat rätt lagrar instruktionen "mov %%ebp %0" värdet i ebp (ebp är ett processorregister) till det första argumentet. Det första argumentet består är "=m"(oldEBP) , där = betyder resultat och m betyder... Något? Datatyp kanske (gissar vilt). Sedan kommer namnet på den variabel resultatet ska lagras i.

Det det står är alltså motsvarande "oldEBP = ebp;"

Edit: Syftningsfel. EBP ,,R ett processorregister, det innehåller inte ett.

-------------------------
Ljusblå

Senast redigerad 16:44 - 5:e Juli 2005


HärJ 15:58 - 5:e Juli 2005 | Post #5
Moderator
Inlägg: 1198


Skicka PM
BF är lättläst ju. hur kan det det bli svårt om man bara har 8 tecken? Smiley
Assembler vill jag kunna...och lisp...

-------------------------
Tänk om jag vore en skalärprodukt!



sdac 15:53 - 6:e Juli 2005 | Post #6
Medlem
Inlägg: 235


Skicka PM
Har aldrig sett assembly användas på det där sättet i C++. Själv brukar jag använda inlineassembly i visual c++ såhär:

  1. __asm
  2. {
  3. mov al, 2
  4. mov dx, 0xD002
  5. out dx, al
  6. }


Inga konstigheter alls. ;p


Senast redigerad 15:54 - 6:e Juli 2005


Celeron 17:15 - 6:e Juli 2005 | Post #7
Medlem
Inlägg: 418


Skicka PM
Jag vet inte, men Dojjan's kod ser ganska mycket ut som C.

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



ozamosi 18:33 - 6:e Juli 2005 | Post #8
Administratör
Inlägg: 1129


Skicka PM
    Citat av sdac:
Har aldrig sett assembly användas på det där sättet i C++. Själv brukar jag använda inlineassembly i visual c++ såhär:

  1. __asm
  2. {
  3. mov al, 2
  4. mov dx, 0xD002
  5. out dx, al
  6. }


Inga konstigheter alls. ;p

Ja, du använder intel-synax och inte gnu-syntax. Som sagt, GNU-syntax är helt oläsligt, och intel-syntax är riktigt trevligt.

...och sen förenklar ju inte GNUs argumentsystem läsbarheten direkt...

-------------------------
Ljusblå



Dojjan 10:37 - 7:e Juli 2005 | Post #9
Medlem
Inlägg: 114


Skicka PM
Och hur hade det sett ut i intel-syntaxen då?




ozamosi 13:55 - 7:e Juli 2005 | Post #10
Administratör
Inlägg: 1129


Skicka PM
Vetefan... Byt plats på %%ebp och %0 till och börja med (gnu-asm assignar - som i princip ända språket i världen - från vänster till höger), ta bort alla %. Sen hur man stoppar in c++-variabler i asm-kod är väl upp till kompilatorn, och jag har ingen aning om hur man gör.

-------------------------
Ljusblå



Python 19:32 - 18:e September 2007 | Post #11
Medlem
Inlägg: 157


Skicka PM
    Citat av ozamosi:
Ush... GNU ASM - lika lättläst som BrainFuck...

Om jag fattat rätt lagrar instruktionen "mov %%ebp %0" värde...

BF är jättelättläst 8 tecken. Man lär sig vad alla gör och hur man använder dom på 10 min, typ.

-------------------------
-------------------------



Lajnold 23:13 - 18:e September 2007 | Post #12
Medlem
Inlägg: 65


Skicka PM
    Citat av Python:
    Citat av ozamosi:
Ush... GNU ASM - lika lättläst som BrainFuck...

Om jag fattat rätt lagrar instruktionen "mov %%ebp %0" värde...


BF är jättelättläst 8 tecken. Man lär sig vad alla gör och hur man använder dom på 10 min, typ.


Nu kanske du inte var seriös, men att man ser direkt vad en viss symbol gör betyder inte att språket är lättläst.

-------------------------
Ingen signatur!



Python 14:34 - 19:e September 2007 | Post #13
Medlem
Inlägg: 157


Skicka PM
Nej det är så klart sant

-------------------------
-------------------------



Sidor: 1

Forum huvudsida -> Programmering -> assembler i c++
Atom feed

Du får inte posta i den här tråden | Till toppen