Главная / Ассемблер в Linux для программистов на C / /**************************************** start of sample1.s *******************************/ .data printf_format: . string "%s\n " str_in: .string "abc123()!@!777 " .set str_in_length, .-str_in .bss str_out: .space str_in_length .text .globl main main: p

/**************************************** start of sample1.s *******************************/ .data printf_format: . string "%s\n " str_in: .string "abc123()!@!777 " .set str_in_length, .-str_in .bss str_out: .space str_in_length .text .globl main main: pushl %ebp movl %esp, %ebp movl $str_in, %esi movl $str_out, %edi movl $str_in_length - 1, %ecx 1b: lodsb incb %al stosb loop 1b movsb popl %ebp ret /**************************************** end of sample1.s *******************************/ Какие утверждения про приведённую выше программу верны?

вопрос

Правильный ответ:

программа размещает адрес входного массива данных в регистре esp
программа в цикле напрямую копирует данные из памяти, начиная с адреса str_in в память, начиная с адреса str_out
инструкция stosb берёт данные по адресу из регистра edi и сохраняет в регистр al
инструкция lodsb берёт данные по адресу из регистра esi и сохраняет в регистр al
операторы stos и lods изменяют значения регистров, которые они используют для хранения адресов
Сложность вопроса
67
Сложность курса: Ассемблер в Linux для программистов на C
50
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Какой человек ищет эти ответы интуит? Это же совсем для даунов
31 янв 2020
Аноним
Какой студент находит эти ответы интуит? Это же безумно легко
28 мар 2019
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.