aboutsummaryrefslogtreecommitdiff
path: root/semestr-4/ask/lista5/zad2.c
blob: ab9cb54c54a6019caa3a5f58ce0d9173b0ca2af0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <stdint.h>

long puzzle2(char *rdi /* rdi */, char *rsi /* rsi */) {
    char *rax = rdi;
L3:
    char r9b = *rax;
    char *r8 = rax + 1;
    char *rdx = rsi;
L2:
        char cl = *rdx;
        rdx++;
        if (cl == 0) {
            goto L4;
        }
        if (cl != r9b) {
            goto L2;
        }
        rax = r8;
        goto L3;
L4:
    return rax - rdi;
}


// funkcja sprawdza jaka jest pierwsza litera z s która nie występuje w d
// jesli wszystkie występują, to zwróci długość s.
long puzzle2_decoded(char *s /* rdi */, char *d /* rsi */) {
    for (char *result = s ; ; result++) {
        char first = *result;
        char *crawl = d;
        for (char *crawl = d; *crawl != first; crawl++) {
            if (*crawl == 0) {
                return result - s;
            }
        }
    }
}



int main() {

}