tw39296.pp 402 B

1234567891011121314151617181920212223242526
  1. { %cpu=x86_64 }
  2. { %skiptarget=win64 }
  3. function bytepara(b: byte; s: shortint): boolean; assembler; nostackframe;
  4. asm
  5. xorl %eax, %eax
  6. cmpl $5, %edi
  7. seteb %al
  8. cmpl $-3, %esi
  9. seteb %dl
  10. andb %dl, %al
  11. end;
  12. var
  13. b1: byte;
  14. s1: shortint;
  15. begin
  16. b1:=5;
  17. s1:=-3;
  18. asm
  19. movl $0x12345678, %edi
  20. movl $0xabcdef01, %esi
  21. end ['rsi', 'rdi'];
  22. if not bytepara(b1,s1) then
  23. halt(1);
  24. end.