Well, I decided to modify my latest example a little bit to show what
happens for int64, because it can be interesting too to use int64...
if ExamineMixedParameters
(
$1A, // eax
$1B, // edx
$1C, // ecx
$1D, // stack
$0102030405060708, // stack
$1F, // stack
$10, // stack
$11 // stack
) then
begin
writeln('true');
end;
// disassembly:
Project1.dpr.129: if ExamineMixedParameters
0040936F 6A1D push $1d
00409371 6804030201 push $01020304
00409376 6808070605 push $05060708
0040937B 6A1F push $1f
0040937D 6A10 push $10
0040937F 6A11 push $11
00409381 B11C mov cl,$1c
00409383 66BA1B00 mov dx,$001b
00409387 B01A mov al,$1a
00409389 E846FEFFFF call ExamineMixedParameters
0040938E 84C0 test al,al
00409390 7416 jz $004093a8
// The value is nicely visible... it's indeed pushed like the others,
except
in this case
// the least significant value is pushed first, then the most significant
value.
// good to know that ;) it makes sense from left to right.
// **** intel with their weird hardware memory layout from right to left
HAHAHAHAHAHA. Actually **** all hardware with numbering from
// right to left, it's unnatural for human beings to read from right to
left
except if you bin laden HAHAHA LOL
Bye,
Skybuck.


|