* fixed range problem with in [tasmop]

This commit is contained in:
peter 1998-12-01 11:19:38 +00:00
parent 144544f8c2
commit 895c8b8d77
2 changed files with 19 additions and 8 deletions

View File

@ -20,6 +20,9 @@
**************************************************************************** ****************************************************************************
} }
{$ifdef TP}
{$N+,E+}
{$endif}
unit ag386int; unit ag386int;
interface interface
@ -481,7 +484,7 @@ ait_labeled_instruction : AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]
prefix:= ''; prefix:= '';
if pai386(hp)^.op1t<>top_none then if pai386(hp)^.op1t<>top_none then
begin begin
if pai386(hp)^._operator in [A_CALL] then if pai386(hp)^._operator=A_CALL then
begin begin
{ with tasm call near ptr [edi+12] does not { with tasm call near ptr [edi+12] does not
work but call near [edi+12] works ?? (PM) work but call near [edi+12] works ?? (PM)
@ -592,7 +595,10 @@ ait_stab_function_name : ;
end. end.
{ {
$Log$ $Log$
Revision 1.21 1998-11-30 09:42:55 pierre Revision 1.22 1998-12-01 11:19:38 peter
* fixed range problem with in [tasmop]
Revision 1.21 1998/11/30 09:42:55 pierre
* some range check bugs fixed (still not working !) * some range check bugs fixed (still not working !)
+ added DLL writing support for win32 (also accepts variables) + added DLL writing support for win32 (also accepts variables)
+ TempAnsi for code that could be used for Temporary ansi strings + TempAnsi for code that could be used for Temporary ansi strings

View File

@ -21,9 +21,8 @@
**************************************************************************** ****************************************************************************
} }
{ R- Necessary for the in [] }
{$ifdef TP} {$ifdef TP}
{$N+,E+,R-} {$N+,E+}
{$endif} {$endif}
unit ag386nsm; unit ag386nsm;
@ -285,6 +284,7 @@ unit ag386nsm;
counter, counter,
lines, lines,
i,j,l : longint; i,j,l : longint;
op : tasmop;
consttyp : tait; consttyp : tait;
found, found,
quoted : boolean; quoted : boolean;
@ -437,8 +437,10 @@ unit ag386nsm;
end; end;
ait_labeled_instruction : ait_labeled_instruction :
begin begin
if not (pai_labeled(hp)^._operator in [A_JMP,A_LOOP,A_LOOPZ,A_LOOPE, op:=pai_labeled(hp)^._operator;
A_LOOPNZ,A_LOOPNE,A_JCXZ,A_JECXZ]) then if not((op=A_JMP) or (op=A_LOOP) or (op=A_LOOPZ) or
(op=A_LOOPE) or (op=A_LOOPNZ) or (op=A_LOOPNE) or
(op=A_JCXZ) or (op=A_JECXZ)) then
AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]+#9+'near '+lab2str(pai_labeled(hp)^.lab)) AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]+#9+'near '+lab2str(pai_labeled(hp)^.lab))
else else
AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]+#9+lab2str(pai_labeled(hp)^.lab)); AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]+#9+lab2str(pai_labeled(hp)^.lab));
@ -486,7 +488,7 @@ ait_labeled_instruction :
pai386(hp)^._operator:=A_FSTSW; pai386(hp)^._operator:=A_FSTSW;
if pai386(hp)^.op1t<>top_none then if pai386(hp)^.op1t<>top_none then
begin begin
if pai386(hp)^._operator in [A_CALL] then if pai386(hp)^._operator=A_CALL then
s:=getopstr_jmp(pai386(hp)^.op1t,pai386(hp)^.op1) s:=getopstr_jmp(pai386(hp)^.op1t,pai386(hp)^.op1)
else else
begin begin
@ -582,7 +584,10 @@ ait_stab_function_name : ;
end. end.
{ {
$Log$ $Log$
Revision 1.14 1998-11-30 09:42:56 pierre Revision 1.15 1998-12-01 11:19:39 peter
* fixed range problem with in [tasmop]
Revision 1.14 1998/11/30 09:42:56 pierre
* some range check bugs fixed (still not working !) * some range check bugs fixed (still not working !)
+ added DLL writing support for win32 (also accepts variables) + added DLL writing support for win32 (also accepts variables)
+ TempAnsi for code that could be used for Temporary ansi strings + TempAnsi for code that could be used for Temporary ansi strings