Entwickler-Ecke

Sonstiges (Delphi) - Frage zu Delphi Inline-Assembler Syntax


catweasel - So 07.03.04 23:18
Titel: Frage zu Delphi Inline-Assembler Syntax
Hi,

Ich möchte im Deplhi Inline Assembler ein LAbel deklarieren..

Laut Delphi Hilfe ist ein LAbel ein Striong der mit einem "at" Zeichen beginnt...
Aber da funktioniert was bei mir nicht :-(

Nur, wenn ich sowas eingebe:
Es wird das AX-Register bis auf den Wert von BX hochgezählt... Ich weiss nicht sehr sinnvoll. :roll:
Aber fürs erste eigene Assemblerprogramm ;-)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure Testfunktion;
asm
mov bx,5
mov ax,0
@test;     // FEHLER !!!!!
inc ax
dec bx
jnz bx,test
nop
end;


kommt die Fehlermeldung vom Compiler :


Quelltext
1:
[Error] Unit1.pas(71): Inline assembler syntax error                    


Wie werden denn Labels korrekt gesetzt, oder mach ich was anderes falsch ????


Catweasel


Motzi - So 07.03.04 23:24
Titel: Re: Frage zu Delphi Inline-Assembler Syntax
So sollte es gehen..

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Testfunktion;
asm
    mov bx,5
    mov ax,0

  @@test:
    inc ax
    dec bx
    jnz bx,test
    nop
end;


catweasel - So 07.03.04 23:29

Also, es hat auf jeden Fall schonmal geholfen :)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Testfunktion; 
asm 
    mov bx,5 
    mov ax,0 

  @@test
    inc ax 
    dec bx 
    jnz bx,test   // FEHLER !!
    nop 
end;


Nun sagt er das "test" ein undeclared Identifier sei... :-(

Catweasel


Motzi - So 07.03.04 23:54

So.. jetzt müsste es aber gehn..

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Testfunktion; 
asm 
    mov bx,5 
    mov ax,0 

  @@test
    inc ax 
    dec bx 
    jnz @@test
    nop 
end;


catweasel - Mo 08.03.04 02:18

Juhuuu !!!!! :D
Es gibt zumindest keine Fehlermeldungen mehr :-) Zu sehen gibts ja nicht vie l.. Aber der wird das schon machen, oder gibts da ein debug-fenster mit dem ich das Mitverfolgen kann ?

Catweasel