2012-05-22 10 views
8

Chcę zaprogramować 64-bitowy montaż okien (najlepiej przy użyciu NASM). Wyglądałem dość, ale w google, ale wydaje się, że nie mogę znaleźć 64-bitowy kompilator Windows. Niektóre witryny wymienione ml64, ale wydaje się, że nie jest już uwzględnione w VC++. Próbowałem z 32 bitowym montażem, ale oczywiście po prostu zawiesza się na moim 64-bitowym komputerze. Czy możliwe jest pisanie, kompilowanie i uruchamianie 32-bitowych aplikacji montażowych na 64-bitowym komputerze z systemem Windows? A może powinien być napisany i skompilowany dla 64 bitów?64-bitowy asembler Windows

Dzięki.

+0

Dla przypomnienia, ml64.exe jest wliczone w mojej instalacji VS2010. Nie jestem pewien, czy jest on dołączony do wersji Express ... – PinnyM

+1

Użytkownik VS2010 Express tutaj, ml64.exe jest obecny w folderach Visual Studio/VC/bin/amd64 i bin/x86_amd64. – DCoder

+0

Jeśli chcesz używać NASM, po prostu przejdź do http://nasm.us i pobierz NASM wersję Win32. Będzie działał w systemie 64-bitowym i będzie tworzyć aplikacje 64-bitowe. –

Odpowiedz

6

Yasm (*) to nowoczesny, wieloplatformowy asembler NASM, który może być montowany zarówno dla zestawów instrukcji x86, jak i AMD64/x86-64.

Jednak ... Co prawdopodobnie oznacza, że ​​potrzebujesz linker, aby połączyć zmontowany kod/plik (y) obiektu, aby utworzyć plik wykonywalny. Co najmniej całkowicie darmowy pakiet projektu MinGW (Minimal GNU for Windows) jest dostarczany z łącznikiem (zwanym ld), który może składać zarówno 32-, jak i 64-bitowe pliki wykonywalne systemu Windows z plików obiektowych (przynajmniej w formacie obiektów ELF i PE).

Można zdecydowanie krzyżować kompilację/kompilować 32-bitowe projekty w środowisku 64-bitowym i na odwrót, biorąc pod uwagę, że podajesz poprawne parametry wiersza poleceń do asemblera i linkera. Zapoznaj się z dokumentacją narzędzi Twojego wyboru, aby uzyskać bardziej szczegółowe informacje.

*) http://yasm.tortall.net/

+0

Myślę, że ld to tylko linker. –

+0

Zgadza się. Dzięki za wskazanie tego, zupełnie źle zrozumiałem kontekst i wymieszałem terminologię. Zmieniłem i poprawiłem odpowiedź, by uzyskać więcej szczegółów. – zxcdw

+0

Bardzo dziękuję za wpis. Używam ld do linkowania, ale wygląda na to, że nadal się zawiesza. Czy możliwe jest dostarczenie mi fragment kodu złożenia, który może kompilować się z yasm i być połączony w systemie 64-bitowym, ale napisany w 32-bitowym zestawie? To nie musi nic robić. Po prostu skompiluj i uruchom bez awarii. Byłoby świetnie. –

3

Możliwe jest pisanie, montaż i uruchamianie zestawu 32-bitowego w 64-bitowym systemie Windows. Napisałem kilka narzędzi w masm32 na moim komputerze z Windows 7 x64. Jeśli chcesz zmontować 64-bitowy kod, wierzę, że FASM obsługuje 64-bitowy kod obiektowy.

Powiązane problemy