Advertisement
Guest User

Untitled

a guest
May 20th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ####### PROGRAM GLOWNY C #########
  2.  
  3. #include <stdio.h>
  4.  
  5. extern void szyfrCezara(char * text, int key);
  6.  
  7. char text[]="ZZZZaSHF";
  8. int key = 54;
  9. int textlen = 6;
  10.  
  11. int main() {
  12.  
  13. szyfrCezara(&text,key);
  14.  
  15. printf("Zaszyfrowany tekst: %s\n",text);
  16.  
  17. return 0;
  18. }
  19.  
  20.  
  21. ####### FUNKCJA W ASM ##########
  22.  
  23. .data
  24.  
  25. .text
  26. .global szyfrCezara
  27. .type szyfrCezara, @function
  28.  
  29. szyfrCezara:
  30.  
  31. push %rbp
  32. mov %rsp, %rbp
  33.  
  34. mov $0, %r8 /* licznik */
  35. mov $26, %r9
  36. mov %rsi, %rax
  37.  
  38. loop:
  39.  
  40. /* rdi - text, rax - klucz */
  41.  
  42.     mov (%rdi, %r8, 1), %bl
  43.     cmp $65, %bl
  44.     jl next
  45.     cmp $90, %bl
  46.     ja next
  47.     cmp $26, %rsi
  48.     ja modkey
  49.  
  50.     adding:
  51.     add %al, %bl
  52.     cmp $90, %bl
  53.     ja bigkey
  54.     mov %bl, (%rdi, %r8, 1)
  55.     jmp next
  56.  
  57.     next:
  58.     inc %r8
  59.     cmp $3, %r8
  60.     je end
  61.     cmp $3, %r8
  62.     jl loop
  63.  
  64.     modkey:
  65.     mov $0, %rdx
  66.     div %r9
  67.     mov %rdx, %rax
  68.     jmp adding
  69.  
  70.     bigkey:
  71.     sub $26, %bl
  72.     mov %bl, (%rdi, %r8, 1)
  73.     jmp next   
  74.    
  75. jl loop
  76.  
  77. end:
  78. mov %rbp, %rsp
  79. pop %rbp
  80. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement