1
내 프로그램의 어셈블리 코드를 검사하여 일부 레지스터에 내 데이터를로드하는지 확인하기 만하면됩니다.터보 파스칼 (dosbox)에서 어셈블리 코드를 얻는 방법은 무엇입니까?
출력으로 "make"및 "build"및 선택 "disk"를 시도했지만 소스 및 exe 파일 외에 새 파일이 없습니다.
내 프로그램의 어셈블리 코드를 검사하여 일부 레지스터에 내 데이터를로드하는지 확인하기 만하면됩니다.터보 파스칼 (dosbox)에서 어셈블리 코드를 얻는 방법은 무엇입니까?
출력으로 "make"및 "build"및 선택 "disk"를 시도했지만 소스 및 exe 파일 외에 새 파일이 없습니다.
Turbo Pascal은 검사 할 중간 어셈블러 코드를 생성하지 않습니다. 대화식으로 검사하고 싶으므로 어쨌든 디버거가 필요합니다.
터보 디버거라는 프로그램이 DOS 용이며 터보 파스칼과 비슷한 UI로되어있어 사용자의 요구에 맞춰야합니다. 내가 그것을 정확하게 기억한다면, 적어도 그것의 어떤 버전이 자유롭게 발표되었다.
바이너리 (.exe)를 원하는 디스어셈블러로 디스 어셈블하거나 디버거에서 코드를 실행하십시오. 추가 도구를 사용하여 소스를 생성하지 않는 한 빌드 도구가 오브젝트 파일 만 생성하는 것은 일반적입니다. (그리고 나는 터보 파스칼을 위해 무엇이 있는지 모른다.) –
안녕하세요, "ndisasm"으로 시도했지만 출력 파일이 컸습니다. 그게 정상인가요? c = a + b 파스칼 프로그램입니다. –
예, 컴파일러가 추가 한 모든 시작 상용구가 exe에 포함되어 있기 때문에 정상입니다. 또한 NDISASM은 .exe 파일 형식에 대해 알지 못해서 PE 헤더의 바이트를 asm 명령 인 것처럼 해체 할 수 있습니다. 나는 당신이 그것을 가지고 있다면'objdump -Mintel -mi8086'을 추천 할 것이다 (리눅스에서 또는 mingw 또는 cygwin 설치의 일부로서). ('-mi8086'은 16 비트 코드를 분해하도록 알려줍니다). –