MCode mit GCC

Alles, was nicht in die anderen Foren gehört.

Moderator: jNizM

Bentschi
Posts: 22
Joined: 02 Oct 2013, 18:45

MCode mit GCC

29 Aug 2014, 22:01

Hallo,
Hab mal wieder etwas mit MCode rumgespielt und hab jetzt einen Weg gefunden per GCC-Compiler MCode zu kompilieren... :superhappy:

Code: Select all

#NoEnv
SetWorkingDir, % A_ScriptDir

FileDelete, x86.txt
FileDelete, x64.txt
RunWait, %comspec% /c ""C:\mingw64\mingw64\bin\gcc.exe" -g -c -m32 -o "%A_ScriptDir%\test.o" test.c"
RunWait, %comspec% /c ""C:\mingw64\mingw64\bin\objdump.exe" -d -M intel "%A_ScriptDir%\test.o">x86.txt"
FileDelete, test.s
FileDelete, test.o
RunWait, %comspec% /c ""C:\mingw64\mingw64\bin\gcc.exe" -g -c -m64 -o "%A_ScriptDir%\test.o" test.c"
RunWait, %comspec% /c ""C:\mingw64\mingw64\bin\objdump.exe" -d -M intel "%A_ScriptDir%\test.o">x64.txt"
FileDelete, test.s
FileDelete, test.o
FileRead, x86, x86.txt
FileRead, x64, x64.txt
MsgBox, % x86 "`n`n`n" x64
Testcode:

Code: Select all

int add(int a, int b)
{
  return a+b;
}
Ausgabe:

Code: Select all

C:\Users\__________\Desktop\GCC-MCode\test.o:     file format pe-i386


Disassembly of section .text:

00000000 <_add>:
   0:	55                   	push   ebp
   1:	89 e5                	mov    ebp,esp
   3:	8b 55 08             	mov    edx,DWORD PTR [ebp+0x8]
   6:	8b 45 0c             	mov    eax,DWORD PTR [ebp+0xc]
   9:	01 d0                	add    eax,edx
   b:	5d                   	pop    ebp
   c:	c3                   	ret    
   d:	90                   	nop
   e:	90                   	nop
   f:	90                   	nop



C:\Users\__________\Desktop\GCC-MCode\test.o:     file format pe-x86-64


Disassembly of section .text:

0000000000000000 <add>:
   0:	55                   	push   rbp
   1:	48 89 e5             	mov    rbp,rsp
   4:	89 4d 10             	mov    DWORD PTR [rbp+0x10],ecx
   7:	89 55 18             	mov    DWORD PTR [rbp+0x18],edx
   a:	8b 55 10             	mov    edx,DWORD PTR [rbp+0x10]
   d:	8b 45 18             	mov    eax,DWORD PTR [rbp+0x18]
  10:	01 d0                	add    eax,edx
  12:	5d                   	pop    rbp
  13:	c3                   	ret    
  14:	90                   	nop
  15:	90                   	nop
  16:	90                   	nop
  17:	90                   	nop
  18:	90                   	nop
  19:	90                   	nop
  1a:	90                   	nop
  1b:	90                   	nop
  1c:	90                   	nop
  1d:	90                   	nop
  1e:	90                   	nop
  1f:	90                   	nop
Die Ausgabe ist ähnlich der von Visual Studio, muss das nur noch anpassen.


Warum das ganze jetzt?...
Punkt 1: GCC/MinGW ist komplett kostenlos, frei, open source, gratis und kostet nichts
Punkt 2: GCC läuft auch auf Linux
Wobei Punkt 2 sehr stark für einen neuen Onlinegenerator spricht, bei dem ich nicht auf eine DynDns oder einen Windows-Root-Server angewiesen bin...
... noch eine Idee ist es den Compiler auch direkt in meiner neuen Web-API anzubieten.

Und jetzt bitte
:clap: :clap: :clap: :clap:
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: MCode mit GCC

31 Aug 2014, 06:16

Du hättest mich auch nach dem Code für GCC fragen können ^^.
Den benutze ich jetzt schon seit einer Weile, da ich es nicht hinbekommen habe VC++ auf 64 bit umzustellen.
BTW dein Assembly code ist ziemlich ineffektiv :P

Code: Select all

00000000 <_add>:
   0:   8b 44 24 04                mov    eax,DWORD PTR [esp+0x4]
   4:   03 44 24 08                add     eax,DWORD PTR [esp+0x8]
   8:   c3                         ret
Recommends AHK Studio
Bentschi
Posts: 22
Joined: 02 Oct 2013, 18:45

Re: MCode mit GCC

31 Aug 2014, 09:22

Haha, hatte auch so meine Probleme mit Visual Studio.
Hatte zwar x64 aber konnte die neueste Version nicht mehr installieren, obwohl die schonmal auf meinem Rechner lief.

ineffektiv? Der macht doch was er soll, nur ist der Code eben nicht optimiert im beispiel oben.

Hab das ganze jetzt auch schon in Linux/PHP am laufen.
Allerdings erlaubt mein Webspace kein exec (oä) womit ich dann auch nicht gcc aufrufen kann.
Leider findet sich auch kein anderer Webspace (weder bezahlt noch unbezahlt) der sich mit der Sicherheit auseinander setzt und exec aktiviert, eben nur auf Ordnerebene.
Daher erscheint bei jedem Anbieter einfach exec und co. unter disabled_functions.
Letztdendlich brauch ich wohl trotzdem nen VPS, aber nur wegen den MCode-Generator werde ich den nicht kaufen.
Wird also noch 1-2 Monate dauern bis ich mir dann einen zulege.

Btw:
Hab mir jetzt das komplettpaket von OpenStreetMap runtergeladen... sind ja nur >500 GB.
Dieses wird soeben geparst... mal sehen was ich davon in die API einbauen kann :D
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: MCode mit GCC

21 Oct 2014, 01:23

Gibts schon Neuigkeiten zwecks MCode-Generator?
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: MCode mit GCC

21 Oct 2014, 09:50

Ich verdiene bald ein bisschen geld und hab mir gedacht mir nen ordentlichen Internet Server zuzulegen.
Wenn das nicht klappt werde ich einfach versuchen eine AHK funktion zu schreiben welche Code kompiliert.
Recommends AHK Studio

Return to “Allgemeines”

Who is online

Users browsing this forum: No registered users and 36 guests