|
빌더에 내장된 asm
인라인 어셈블러는 간이용입니다.
정식 어셈블러가 아니기 때문에 쓸수 있는 기능이 제한되어 있습니다.
char *teststr = "test";
asm
{
lea eAX, teststr
식으로 하면 됩니다.
간이 어셈블러 내에서 참조하는 변수 명칭은
기본적으로 C/C++ 것임을 전제로 하고 있기 때문입니다.
강대민 님이 쓰신 글 :
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: asm
: {
: MOV AX,BYTE PTR [teststr]
: JMP end
: teststr db "test",0
: end:
: }
:
: }
:
: XE 쓰고있습니다 AX 레지스터에 test 의 시작 주소를 넣고싶은대 문법 오류가 납니다
:
: 어떻게 해야할까요?
:
:
: 어셈블리어로 프로그램 만들어야되는 일이생겼는대 개발은 빌더의 인라인 어셈 에서하다가
:
: ( 세그먼트 하나에 코드 데이터 다들어있는 형태로 만들예정이라)
:
: 어느정도만들어지면 어셈블리 컴파일러로 바꿀려고합니다
|