tasmabs3.pp 922 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. program tasmabs3;
  2. { NOT TP7 compatible (TP7 doesn't support absolute with an index) }
  3. {$ASMMODE INTEL}
  4. {$ASMCPU 80386}
  5. var
  6. barr: array [-7..100] of byte;
  7. l: longint absolute barr[17];
  8. w: word absolute barr[53];
  9. b: byte absolute barr[62];
  10. begin
  11. FillChar(barr, SizeOf(barr), $ff);
  12. asm
  13. mov l, 4
  14. end;
  15. if (barr[17+0] <> 4) or (barr[17+1] <> 0) or (barr[17+2] <> 0) or
  16. (barr[17+3] <> 0) or (barr[17+4] <> 255) or (barr[17-1] <> 255) then
  17. begin
  18. Writeln('Error!');
  19. Halt(1);
  20. end;
  21. FillChar(barr, SizeOf(barr), $ff);
  22. asm
  23. mov w, 2
  24. end;
  25. if (barr[53] <> 2) or (barr[54] <> 0) or (barr[55] <> 255) or
  26. (barr[52] <> 255) then
  27. begin
  28. Writeln('Error!');
  29. Halt(1);
  30. end;
  31. FillChar(barr, SizeOf(barr), $ff);
  32. asm
  33. mov b, 1
  34. end;
  35. if (barr[62] <> 1) or (barr[63] <> 255) or (barr[61] <> 255) then
  36. begin
  37. Writeln('Error!');
  38. Halt(1);
  39. end;
  40. Writeln('Ok!');
  41. end.