(Assembler) Assembler unter VS 6 im C++-Code
-
Hallo zusammen !
Wie und mit welchen Befehlen kann ich direkt in meinem C++-Prog ein Assemblercode implementieren?
Danke und Gruß MacReeg
-
__asm mov ax,1 oder __asm { mov ax,1 }
-
Danke Nemesyzz !
Aber wie rufe ich diesen Assembler-Code aus meinem C++-Prog auf?
Gruß MacReeg
-
Stetdoch eigentlich schon da:
z.B:
void outport(unsigned short port, unsigned short val)
{
_asm
{
mov dx, port
mov ax, val
out dx, ax//nicht unter NT
}
}gibt etwas an einen bestimmten Port aus
-
OK TheBigW !
Das habe ich nun kapiert. Mit Port und Val kann ich also Werte an den ASM-Code übergeben. Aber wie gebe ich nun Port oder Val wieder an mein C++-Prog zurück?
Gruß MacReeg
-
Mit Port und Val kann ich also Werte an den ASM-Code übergeben
nein da wird nichts übergeben!
void function(void) { int a = 9; int b = 4; printf("%d -- %d\n", a, b); __asm { // verändere a und b werte } printf("%d -- %d\n", a, b); }
-
Hallo Franz !
Danke für die schnelle Hilfe - der ASM-Source funktioniert nun unter meinem C++-Prog. Bei Deinem Beispiel gab es nur ein Problem mit der Datentypgröße. Da a und b von der Größe her int (also 4 Bytes) groß sind und die Register nur, ohne Aufsplittung auf 2 Register, mit 2 Bytes funktionieren.
Gruß MacReeg
-
Ok,Ok !
Bisher war alles klar, aber irgendwann kommt man zu einem Punkt, da muss man einfach fragen. Wie sieht z.B. der ASM-Code unter VS6 aus, wenn ich ein einfaches Byte-Array mit einer Zahl füllen möchte?
Siehe Beispiel:
int _tmain(int argc, _TCHAR* argv[]) { char Array[10] = {0,1,2,3,4,5,6,7,8,9}; unsigned short Laenge = sizeof(Array); for (int x = 0; x < Laenge; x++) cout << (int)Array[x]; _asm { ...? ; das Array soll z.B. mit nur Einsen gefüllt werden } for (int x = 0; x < Laenge; x++) cout << (int)Array[x]; return 0; }
Gruß MacReeg
[ Dieser Beitrag wurde am 29.08.2002 um 17:36 Uhr von MacReeg editiert. ]
-
wiso machst du ein char Array wenn du ihn nacher mit Zahlen füllst ??
egal.
Naja ich glaub in diesem Forum wirst du nicht so viel glück haben muste mal bei Assambler fragen.
-
Würde ich auch sagen ... Hat ja nix mehr mitder MFC zu tun ...
Verschoben.