• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Assembler kompilacja

0 głosów
1,424 wizyt
pytanie zadane 24 października 2017 w Assembler przez Frendom Pasjonat (18,900 p.)

Czołem, mam mały problem z kompilacją pliku.

Zawartość pliku do skompilowania:

;"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\ml64" %1.asm /Zd  /Zi /link /subsystem:console /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:Start

EXTRN GetStdHandle: PROC
EXTRN WriteFile:    PROC
EXTRN lstrlen:      PROC
EXTRN ExitProcess:  PROC

.DATA

    hFile        QWORD 0
    msglen       DWORD 0
    BytesWritten DWORD 0
    msg          BYTE  "Hello x64 World!", 13, 10, 0

.CODE
Start PROC

	 ;int 3              ; breakpoint for debugger

        sub rsp, 28h

        lea rcx, msg
        call lstrlen
        mov msglen, eax

	 mov ecx, -11        ; STD_OUTPUT
	 call GetStdHandle
        mov hFile, rax

        lea r9, BytesWritten
       	 mov r8d, msglen
	 lea rdx, msg
        mov rcx, hFile
	 call WriteFile

	 xor ecx, ecx        ; exit code = 0
	 call ExitProcess
Start ENDP

END

;link /subsystem:console /nodefaultlib /entry:mStart

Plik asm.bat:

@rem call "%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\amd64\vcvars64.bat"
@rem call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvarsall.bat" x64
@rem "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\ml64" %1.asm /Zd  /Zi /link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:Start
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\ml64" %1.asm /Zd  /Zi /link /subsystem:console /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:Start
@rem "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\ml64" %1.asm /Zd  /Zi /link /subsystem:console /defaultlib:kernel32.lib /defaultlib:user32.lib /defaultlib:msvcrt.lib /entry:Start

:end

Po wpisaniu w konsoli asm nazwa_pliku(tak, folder jest poprawny), wyskakuje komunikat:

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\am
d64\ml64" write.asm /Zd  /Zi /link /subsystem:console /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:Start
'"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\ml64"' is not recognized as an internal or external command, operable program or batch file.

 

Dorzuciłem do swojego folderu pliku kernel i user, nawet w pliku asm.bat zmieniłem wersje na 11.0, jednak po kompilacji nadal nic się nie dzieje. Ma ktoś możę jakiś pomysł co jeszcze można tutaj zrobić?

 

1 odpowiedź

0 głosów
odpowiedź 24 października 2017 przez plucins Stary wyjadacz (11,130 p.)
obawiam się, że w samej konsoli tego nie odpalisz. Ja osobiście do assemblera używałem dosboxa.
komentarz 25 października 2017 przez Frendom Pasjonat (18,900 p.)
Wlasnie problem jest tutaj, ze na zajeciach wszystko dzialalo :D

Podobne pytania

0 głosów
0 odpowiedzi 184 wizyt
pytanie zadane 14 stycznia 2017 w Assembler przez Jędrzej Dembowski Użytkownik (740 p.)
0 głosów
0 odpowiedzi 1,115 wizyt
pytanie zadane 22 marca 2017 w Assembler przez bamboleo320 Początkujący (450 p.)
0 głosów
1 odpowiedź 2,882 wizyt
pytanie zadane 1 listopada 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,326 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...