Is it ok to use computer math in delphi to loop numbers through their boundaries?

Example:

[pascal]var i: integer; b: byte;
begin
b:=0;
for i:=0 to 255 do
b:=b+1;
// now i should be 100% sure that b = 0, right?
end;[/pascal]

And same logic when decreasing, no matter what type it is. From my test it does work like that for byte, shortint and word but can i trust it to work on every PC and operating system, and free pascal?