Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ####### PROGRAM GLOWNY C #########
- #include <stdio.h>
- extern void szyfrCezara(char * text, int key);
- char text[]="ZZZZaSHF";
- int key = 54;
- int textlen = 6;
- int main() {
- szyfrCezara(&text,key);
- printf("Zaszyfrowany tekst: %s\n",text);
- return 0;
- }
- ####### FUNKCJA W ASM ##########
- .data
- .text
- .global szyfrCezara
- .type szyfrCezara, @function
- szyfrCezara:
- push %rbp
- mov %rsp, %rbp
- mov $0, %r8 /* licznik */
- mov $26, %r9
- mov %rsi, %rax
- loop:
- /* rdi - text, rax - klucz */
- mov (%rdi, %r8, 1), %bl
- cmp $65, %bl
- jl next
- cmp $90, %bl
- ja next
- cmp $26, %rsi
- ja modkey
- adding:
- add %al, %bl
- cmp $90, %bl
- ja bigkey
- mov %bl, (%rdi, %r8, 1)
- jmp next
- next:
- inc %r8
- cmp $3, %r8
- je end
- cmp $3, %r8
- jl loop
- modkey:
- mov $0, %rdx
- div %r9
- mov %rdx, %rax
- jmp adding
- bigkey:
- sub $26, %bl
- mov %bl, (%rdi, %r8, 1)
- jmp next
- jl loop
- end:
- mov %rbp, %rsp
- pop %rbp
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement