Online Compiler Nasm

extern io_get_string, io_print_dec, io_print_char section .bss s resb 4 section .text global main main: mov eax, s call io_get_string movzx eax, byte [s] movzx ebx, byte [s + 3] sub eax, ebx mov ecx, eax sar ecx, 31 xor eax, ecx sub eax, ecx mov ebx, eax movzx eax, byte [s + 1] movzx ecx, byte [s + 4] sub eax, ecx mov edx, eax sar edx, 31 xor eax, edx sub eax, edx add eax, ebx call io_print_dec xor eax, eax ret
1) Этот код считывает строку, затем вычисляет сумму абсолютных разностей между первым и четвёртым, а также вторым и пятым символами строки, и выводит результат.

2) Обрати внимание, что строка в `.bss` выделена только на 4 байта, но код обращается к `s + 4`, что может привести к чтению за пределами выделенной памяти.  
   Также полезно понять, что последовательность операций `sar`, `xor`, `sub` используется для получения абсолютного значения числа в `eax`.