어셈블러 문

어셈블러 문 (Assembler statements)

어셈블러 문장은 Pascal 코드 안에 어셈블리 코드를 바로 삽입할 수 있게 해주는 기능이에요.

출처: 문서

본문

어셈블러 문장(assembler statement)은 Pascal 코드 안에 어셈블리 코드를 직접 넣을 수 있게 해줘요.

어셈블러 블록(asembler block)에 대한 더 자세한 내용은 프로그래머 가이드에서 확인할 수 있어요. 레지스터 목록(register list) 은 어셈블러 블록 안의 어셈블러 문장이 수정하는 레지스터를 표시하는 데 사용돼요. 컴파일러는 일부 결과를 레지스터에 저장하는데, 만약 어셈블러 문장에서 그 레지스터를 수정했다면 컴파일러에게 그 사실을 알려줘야 할 때가 있어요. 레지스터는 I386 프로세서의 경우 인텔 이름(i.e. 'EAX', 'ESI' 등)으로 표기해요. 예를 들어 다음 어셈블리 코드를 살펴볼게요.

asm
  Movl $1,%ebx
  Movl $0,%eax
  addl %eax,%ebx
end ['EAX','EBX'];

이 문장은 컴파일러에게 이 asm 문장을 만날 때 EAX와 EBX 레지스터의 내용을 저장하고 복원해야 한다는 것을 알려줘요.

Free Pascal은 다양한 스타일의 어셈블리 문법을 지원해요. 기본적으로 80386 및 호환 플랫폼에서는 AT&T 문법이 가정돼요. 기본 어셈블러 스타일은 코드 안의 {$asmmode xxx} 스위치나 -R 명령줄 옵션으로 바꿀 수 있어요. 이에 대한 자세한 내용은 프로그래머 가이드에서 찾아볼 수 있어요.

더 알아보기