Code: Select all
MODULE TestSystemBit;
IMPORT SYSTEM;
PROCEDURE Do();
VAR b:BOOLEAN; x,y:INTEGER;
BEGIN
b:=SYSTEM.BIT(x,31);
b:=SYSTEM.BIT(x,200); (*wrong here *)
b :=SYSTEM.BIT(x,y); (* seem wrong here *)
END Do;
END TestSystemBit.
Code: Select all
PROCEDURE Do
00000001H: 55 push ebp
00000002H: 8B EC mov ebp, esp
00000004H: 83 C4 F4 add esp, -12
00000007H: 8B 45 F8 mov eax, -8[ebp] ;;b:=SYSTEM.BIT(x,31);
0000000AH: 0F BA 20 1F bt 0[eax], 31
0000000EH: 0F 92 C0 setb/setc/setnae al
00000011H: 88 45 FF mov -1[ebp], al
00000014H: 8B 45 F8 mov eax, -8[ebp] ;;b:=SYSTEM.BIT(x,200);
00000017H: 0F BA 20 C8 bt 0[eax], -56 ;;wrong here,
;;correct: MOV EDX, 200;MOV EAX, [EBP-8];BT[EAX], EDX
0000001BH: 0F 92 C0 setb/setc/setnae al
0000001EH: 88 45 FF mov -1[ebp], al
00000021H: 8B 45 F8 mov eax, -8[ebp] ;;b :=SYSTEM.BIT(x,y);
00000024H: 8B 55 F4 mov edx, -12[ebp]
00000027H: 0F A3 10 bt edx, 0[eax] ;;seem should be: BT [EAX], EDX
0000002AH: 0F 92 C0 setb/setc/setnae al
0000002DH: 88 45 FF mov -1[ebp], al
00000030H: 8B E5 mov esp, ebp
00000032H: 5D pop ebp
00000033H: C3 ret
luowy