Turbo C++ 3.1을 사용하고 있습니다.Turbo C++ : malloc 함수의 객체 코드 생성
C 표준 라이브러리의 malloc을 필요로하는 어셈블리 모듈이 있습니다. 그래서 내 .ASM 파일에 내가 가진 :
extern _malloc:proc
내가 malloc에 포함 된 오브젝트 파일을 생성 할(). 링커를 사용하고 실행 파일을 작성하려면. 예 :
tasm /zi bmlib.asm // create object file: bmlib.obj
tasm /zi bmlibt.asm // create object (which contains main program): bmlibt.obj
? //Generate object file for malloc: malloc.obj
tlink /v3 bmlibt bmlib malloc // link all modules
bmlibt.exe // Execute the program
런타임의'malloc()'을 사용하려면 런타임 라이브러리에서 링크해야합니다 (malloc()은 고유 한 종속 세트를 가지고 있기 때문에). 또한 런타임이 적절하게 초기화되는지 확인해야합니다. 어셈블리 파일을 어셈블리 언어 프로그램의 진입 점을 호출하는 것 외에 아무것도하지 않는 작은 C 프로그램에 쉽게 링크 할 수 있습니다. 아니면 간단한'malloc()'을 구현하십시오 –
고마워요. C 파일 팁은 훌륭합니다. 내 자신의 malloc을 구현하려면 인터럽트를 사용하여 OS에 공간을 요청해야합니다. – blaze
아마 그걸 할 수있는 방법 중 하나입니다. 프로세스가로드 될 때 메모리 풀이 있으므로 .exe 헤더를 설정하는 링커를 얻는 방법이 있다고 상상하지만 MS-DOS에서 작업 한 이후로 오랜 시간이 걸렸으므로 아무 것도 줄 수 없습니다. 그게 어떻게 작동할지에 대한 세부 정보. –