Шевчук Дмитрий P32312
5 unresolved threads
assigned to @RayRelax
11 xor rax, rax 12 ret 21 xor rax, rax 22 .loop: 23 cmp byte [rdi + rax], END_LINE 24 je .end 25 inc rax 26 jmp .loop 27 .end: 28 ret 13 29 14 30 ; Принимает указатель на нуль-терминированную строку, выводит её в stdout 15 31 print_string: 16 xor rax, rax 17 ret 32 call string_length - Last updated by Шевчук Дмитрий Олегович
43 mov rsi, rsp 44 mov rdx, 1 45 mov rax, WRITE 46 mov rdi, SOUT 47 syscall 48 pop rdi 49 ret 23 50 24 51 ; Переводит строку (выводит символ с кодом 0xA) 25 print_newline: 26 xor rax, rax 27 ret 52 print_newline: 53 mov rdi, NEXT_LINE 54 call print_char 55 ret changed this line in version 2 of the diff
- Last updated by Шевчук Дмитрий Олегович
37 86 print_int: 38 xor rax, rax 39 ret 87 cmp rdi, 0 88 jl .lz 89 jmp .end 90 91 .lz: 92 push rdi 93 mov rdi, '-' 94 call print_char 95 pop rdi 96 neg rdi 97 .end: 98 call print_uint 99 ret changed this line in version 2 of the diff
77 229 ; Возвращает в rax: число, rdx : его длину в символах (включая знак, если он был) 78 230 ; rdx = 0 если число прочитать не удалось 79 231 parse_int: 80 xor rax, rax 81 ret 232 xor rsi, rsi 233 cmp byte [rdi], '-' 234 jne .loop 235 mov rsi, 1 236 inc rdi 237 238 .loop: 239 call parse_uint 240 cmp rdx, 0 241 je .end 242 cmp rsi, 0 242 cmp rsi, 0 243 je .end 244 inc rdx 245 neg rax 246 .end: 247 ret 82 248 83 249 ; Принимает указатель на строку, указатель на буфер и длину буфера 84 250 ; Копирует строку в буфер 85 251 ; Возвращает длину строки если она умещается в буфер, иначе 0 86 252 string_copy: 87 xor rax, rax 88 ret 253 xor rax, rax 254 xor rcx, rcx 255 @RayRelax, исправил
Edited by Шевчук Дмитрий Олегович