Online Compiler Nasm

extern io_get_dec, io_print_char, io_print_dec, io_get_char, io_get_string section .bss buf resb 6 section .text global main main: mov ebp, esp mov eax, buf mov ebx, 5 call io_get_string movzx eax, byte [buf] movzx ebx, byte [buf+3] sub eax, ebx ;беру модуль не как в 9 задаче mov ebx, eax sar ebx, 31 xor eax, ebx sub eax, ebx mov esi, eax movzx eax, byte [buf+1] movzx ebx, byte [buf+4] sub eax, ebx ;беру модуль не как в 9 задаче mov ebx, eax sar ebx, 31 xor eax, ebx sub eax, ebx add eax, esi call io_print_dec xor eax, eax ret
1) Этот код считывает строку из 5 символов, затем вычисляет сумму модулей разностей между первым и четвёртым, а также вторым и пятым символами, и выводит результат.

2) Обрати внимание, что для вычисления модуля используется арифметический сдвиг (sar) и операция xor, что эквивалентно взятию абсолютного значения. Убедись, что в буфере достаточно места для строки и нулевого символа.