2012-11-18 5 views
0

어셈블리에서 프로그램 중간에 동적 배열을 만드는 방법은 무엇입니까? 나는이 코드를 시도하고이 문제를 해결할 수있는 방법을 알아 어셈블리에서 동적 배열 만들기

.CODE 
.DATA 
list DWORD <register or memory>DUP(?) 

를 작동하지 않았다?

+4

일반적으로하지 마십시오! 컴파일 할 때 "충분한"메모리를 예약하거나 런타임에 더 많이 할당하도록 OS를 호출해야합니다. –

+1

@BoPersson이 정확합니다. OS에 따라 할당 함수를 사용할 수 있지만 더 많은 메모리가 필요하면 malloc 용 C 라이브러리를 호출하는 것이 좋습니다. 이것이 옵션이 아니라면, OS의 프로세스 브레이크를 참조하십시오. 리눅스에서는 'brk'입니다. – Linuxios

+0

@BoPersson, @BoPersson, 나는 배열을 만들고 싶었고, 만약 그것이 다 찼다면, 2 이상의 크기를 가진 또 다른 배열에 복사하거나 더 큰 크기로 바꾸고 싶습니다. –

답변

1

dup은 NASM 또는 FASM 구문이 아니라 MASM입니다. * nix에서 MASM을 합법적으로 사용할 수 없기 때문에 sys_newstatsys_brk은 문제가되지 않습니다. Windows를 목표로 삼고 있습니까?

Heap* 메모리 API 기능을 사용합니다. HeapAllocHeapReAlloc을 사용합니다. CRT 의존성에 신경 쓸 필요가 없다면, 리눅스 사용자가 권유하고 사용하는 것처럼 할 수 있습니다. malloc

+0

어떻게 MASM에서 malloc을 사용할 수 있습니까? –