2011-07-06 8 views
1

(win7 64 비트 코딩)64 비트 어셈블러 문제

어제 어셈블리를 코딩하기 시작했고 플랫 어셈블러를 다운로드했습니다. 이제 코드를 컴파일하면 .fas 파일과 .bin 파일이 생깁니다.

그래서 확장자를 .exe 또는 .com으로 변경하고 내장 코드를 변경한다고 들었습니다. 32 비트 응용 프로그램을 실행하려고하기 때문에 실행하면 오류가 발생합니다.

  1. 변경 파일 속성을 통해 32 비트 파일 실행 (구글에서 읽기)하지만이 같은 옵션이 있습니다 :

    나는 시도했다.

  2. 다른 어셈블러 - 많이. 나는 NASM 64 비트, 같은 문제를 시도했다. 그리고 그들이 작동하지 않아 삭제 한 2 개를 더 좋아하십시오.

누구든지 WORKING 64 BIT ASSEMBLER에 대한 다운로드 링크를 제공 할 수 있습니까? 도에 IDE를 가지고 하루 종일 :(

1 찾고 있었어요 게다가이 dissassembling 옵션이있는 경우가 더 나은,하지만 necessery 될 것입니다.

을 그건 그렇고, 차라리 어셈블러 (FASM과 같이 프로그램 내부에서 코드를 작성하면 어셈블러 인 NASM과는 달리 컴파일 할 때 오류를 알려줍니다.

그리고 다른 질문이 있습니다. 많은 32 비트 어셈블러를 발견했습니다. 가이드는 있지만 64 비트 비트는 훨씬 적습니다 .32 비트에서도 배워야합니까?이 가이드에서는 찾을 수없는 64 비트 전용 명령어가 있다고 가정하지만 기존의 32 비트 명령어가 모두 같으면 코딩 할 때 64 비트로, 나랑 잘 어울린다. 그래?

다른 사람이 좋은 x64 가이드를 가지고 있다면, 여기에 링크를 게시 할 수 있으면 좋겠어요.

미리 감사드립니다.

+0

그래서 FASM의 문제점은 무엇입니까? –

+0

그것은 내 PC에서 실행할 수없는 32 비트 excetuion 파일을 생성합니다. – Jong

답변

1

FASM은 x64를 지원합니다. manual을 읽었습니까? * EXAMPLES \ WIN64 *의 예제를 살펴 보았습니까?

+0

고마워, 내가 그것을 읽었으며 "형식 PE64"지시문을 사용했지만, 내가 exe를 실행하는 순간에 충돌이 일어난다. ("... exe"가 작동을 멈췄다.) – Jong

+1

여전히 프로그램의 문제가 아니라 어셈블러. 아마도 문제가있는 코드를 게시해야 할 것입니다. –

+0

흠 나는 그것이 원인일지도 모른다고 생각하기 때문에 그렇게 생각하지 않는다. 그래서 형식이 PE64이고 그 다음 단순히 "mov al, 08"과 같은 새로운 .ASM 파일을 만들었고이 문제는 여전히 발생한다. – Jong

2

링크 생성 된 바이너리. NASM (Netwide Assembler)의 경우 출력 형식을 지정할 수 있지만 it defaults to bin if you don't supply the argument입니다.

간단히 nam -fwin64 ... 옵션을 지정하십시오. NASM의 Windows-64 비트 어셈블러에 대한 자세한 내용은 section 7.6 of the NASM manual을 참조하십시오.

+0

"nasm C : /first.ASM -fwin64 -o C : /first.EXE"를 시도했지만 출력 파일에 여전히이 32 비트 오류가 표시됩니다. 나는 지금 매뉴얼을 읽을 것이다. – Jong

관련 문제