База ответов ИНТУИТ

Ассемблер в Linux для программистов на C

<<- Назад к вопросам

	/**************************************** start of sample1.s *******************************/    .data    some_var:                .long 0x00000072     other_var:                .long 0x00000001, 0x00000002, 0x00000003    .text    .globl main    main:                movl  $0x48, %eax                 leal  $0x32, %eax                    leal  some_var, %eax                   leal  other_var + 4, %eax                   leal  some_var, $ecx            /**************************************** end of sample1.s  *******************************/                
Какие команды приведённого ассемберного кода приведут к ошибкам при компиляции?

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
leal $0x32, %eax(Верный ответ)
leal some_var, $ecx(Верный ответ)
leal some_var, %eax
leal $other_var + 4, %eax(Верный ответ)
movl $0x48, %eax
Похожие вопросы
	/**************************************** start of sample1.s *******************************/    .data    num:                .long 0x00000072     other_var:                .long 0x00000001, 0x00000002, 0x00000003    .text    .globl main    main:                movl  (num), %eax                 movl  (other_var), %ecx                    leal  (%eax,%eax,2) ,%ecx         /**************************************** end of sample1.s  *******************************/                
Какие виды адресации использованы в вышеприведённом фрагменте программы?
	/**************************************** start of sample1.s *******************************/   .data    some_var:            .long 0x00000072    test_var:        .long 0x00000071, 0x00000072, 0x00000073	dummy_var:		.long 0x00000072, 0x00000073, 0x00000074    .text    .global main    main:    						1	leal dummy_var, %ecx		2	movl 0x00000072 %ecx		3	leal $0x00000072, %ecx		4	movl $dummy_var, %ecx		5	movl $test_var, %ecx	/**************************************** end of sample1.s  *******************************/                
В результате каких операций в регистр ecx будет занесено значение 0x72?
	/**************************************** start of sample1.s *******************************/   .data	.text	.globl main	main:			movl  $0, %eax     			movl  $4, %ecx    	sum:			addl  %ecx, %eax  			loop  sum         movl  $0, %eax        ret	/**************************************** end of sample1.s  *******************************/                
Какие действия выполняются командой loop в вышеприведенном фрагменте?
	/**************************************** 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  *******************************/                
Какие утверждения про приведённую выше программу верны?
Какие из указанных строк являются корректными операндами команды?
Операндами команды процессора могут быть:
Для получения информации о текущей или заданной строке кода в отладчике gdb используется команда: