Advertisement
KipIngram

Untitled

Aug 12th, 2023
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. 1> ( x64 Assembler 1/1 )
  2. 2
  3. 3 : h. 16 base ! . 10 base ! ;
  4. 4 : toggle .@ rot xor swap ! ;
  5. 5 : .var var ;
  6. 6
  7. 7 .var regs .var frame .var ram
  8. 8 .var bytes .var index .var target
  9. 9
  10. 10 .: clear regs 40 0 fill 3 bytes ! x:C00148 frame ! ;
  11. 11
  12. 12 .: reg builds> rot , does> regs 1+! @ ;
  13. 13
  14. 14 0 reg rax 1 reg rcx 2 reg rdx 3 reg rbx
  15. 15 4 reg rsp 5 reg rbp 6 reg rsi 7 reg rdi
  16. 16 8 reg r8 9 reg r9 10 reg r10 11 reg r11
  17. 17 12 reg r12 13 reg r13 14 reg r14 15 reg r15
  18. 18
  19. 19 .: bytes+! bytes 1+! 128 .u<; 3 bytes +! ;
  20. 20 : s[] swap ram 1+! x:c00200 frame toggle ;
  21. 21 : d[] ram 1+! x:c00000 frame toggle ;
  22. 22 .: [i] bytes+! 24 << index ! x:400000 frame toggle ;
  23. 23 : s[i] [i] s[] ;
  24. 24 : d[i] [i] d[] ;
  25. 25
  26. 26 .: index<< index @ 8 << index ! ;
  27. 27 .: index; index @ 0>;; ;
  28. 28 .: ([rsp]?) bytes 1+! x:24000000 xor index<< ;
  29. 29 .: [rsp]? ram @ 0=; over 8 % 4 !=; ([rsp]?) ;
  30. 30 .: ([rbp]?) index; bytes 1+! x:400000 xor index<< ;
  31. 31 .: [rbp]? ram @ 0=; over 8 % 5 !=; ([rbp]?) ;
  32. 32
  33. 33 .: bits> rot and swap >> or ;
  34. 34 .: <bits rot and swap << or ;
  35. 35 .: dest [rsp]? [rbp]? over 16 7 <bits swap 3 8 bits> ;
  36. 36 .: src over 19 7 <bits swap 1 8 bits> ;
  37. 37 .: final bytes @ 5 <=; x:c00000 xor ;
  38. 38 .: post dup h. target @ ! bytes @ target +! clear ;
  39. 39 .: comp index @ or final post ;
  40. 40 .: op builds> rot 8 << , does> @ frame @ or src dest comp ;
  41. 41
  42. 42 0 op .add 8 op .or 16 op .adc 24 op .sbb
  43. 43 32 op .and 40 op .sub 48 op .xor 56 op .cmp
  44. 44 136 op .mov 132 op .test
  45. 45
  46. 46 .: .unary dup 8 and 3 >> swap 7 and 16 << or ;
  47. 47 .: unary builds> rot , does> @ swap .unary or comp ;
  48. 48
  49. 49 x:c0ff48 unary inc x:c8ff48 unary dec
  50. 50 x:d8f748 unary neg x:d0f748 unary not
  51. 51
  52. 52 : ret 1 bytes ! x:c3 post ;
  53. 53
  54. 54 : org target ! ;
  55. 55
  56. 56 clear
  57. 57 ○
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement