Главная /
Ассемблер в 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
Другие ответы на вопросы из темы программирование интуит.
- # В какой из приведённых ниже строк содержится метка
- # /**************************************** start of sample1.s *******************************/ .data num: .long 0x00000072 other_var: .long 0x00000001, 0x00000002, 0x00000003 .text .globl main main: 1 movl (num), %ebx 2 movl $0x1, %eax 3 movl (%ebx), %eax 4 movl %eax, %ecx /**************************************** end of sample1.s *******************************/ В какой из понумерованных строк, в вышеприведённом фрагменте кода используется метод адресации, обеспечивающий максимальную гибкость программы?
- # /**************************************** start of sample1.s *******************************/ .data some_var: .long 0x00000001 .text .global main main: 1 movl $3, %ecx 2 addl $1, %ecx 3 addl $4, %ecx 4 movl $some_var, %eax 5 leal 3(%eax), %ecx /**************************************** end of sample1.s *******************************/ В результате каких операций в регистр ecx будет занесено значение 0x4?
- # Какие утверждения про системные вызовы ошибочны?
- # На что необходимо обратить внимание при работе с структурами?