Advertisement
KipIngram

Untitled

Jun 1st, 2023
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. : h. 16 base ! . 10 base ! ;
  2. : toggle .@ rot xor swap ! ;
  3.  
  4. var regs var frame var ram var bytes var index
  5.  
  6. : clear regs off ram off index off x:C00148 frame ! 3 bytes ! ;
  7.  
  8. : reg builds> rot , does> regs 1+! @ ;
  9.  
  10. 0 reg rax 1 reg rcx 2 reg rdx 3 reg rbx
  11. 4 reg rsp 5 reg rbp 6 reg rsi 7 reg rdi
  12. 8 reg r8 9 reg r9 10 reg r10 11 reg r11
  13. 12 reg r12 13 reg r13 14 reg r14 15 reg r15
  14.  
  15. : bytes+! bytes 1+! 128 .u<; 3 bytes +! ;
  16. : s[] swap ram 1+! x:800200 frame toggle ;
  17. : d[] ram 1+! x:c00000 frame toggle ;
  18. : s[i] bytes+! 24 << index ! s[] ;
  19. : d[i] bytes+! 24 << index ! d[] x:400000 frame toggle ;
  20.  
  21. : index<< index @ 8 << index ! ;
  22. : ([rsp]?) bytes 1+! x:24000000 xor index<< ;
  23. : [rsp]? ram @ 0=; over 8 % 4 !=; ([rsp]?) ;
  24. : ([rbp]?) bytes 1+! x:400000 xor index<< ;
  25. : [rbp]? ram @ 0=; over 8 % 5 !=; ([rbp]?) ;
  26.  
  27. .: bits> rot and swap >> or ;
  28. .: <bits rot and swap << or ;
  29. .: dest [rsp]? [rbp]? over 16 7 <bits swap 3 8 bits> ;
  30. .: src over 19 7 <bits swap 1 8 bits> ;
  31. .: final bytes @ 5 <=; x:c00000 xor ;
  32. .: comp index @ or final h. ;
  33. : op builds> rot 8 << , does> @ frame @ or src dest comp ;
  34.  
  35. 0 op .add 8 op .or 16 op .adc 24 op .sbb
  36. 32 op .and 40 op .sub 48 op .xor 56 op .cmp
  37. 136 op .mov 132 op .test
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement