Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2012, 13:56   #1
manowar111
Новичок
Джуниор
 
Регистрация: 01.12.2012
Сообщений: 1
По умолчанию Арифметическое вычисление квадратного корня

Приветствую.
Получил след. листинг через gcc -S. Очень прошу помочь объяснить мне строчки комментариями.
Код:
.file	"sqrt.c"
	.text
	.globl	_mySqrt
	.def	_mySqrt;	.scl	2;	.type	32;	.endef
_mySqrt:
LFB6:
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	subl	$16, %esp
	movl	$1, -4(%ebp)
	movl	$0, -8(%ebp)
	jmp	L2
L3:
	movl	8(%ebp), %eax
	subl	-4(%ebp), %eax
	movl	%eax, 8(%ebp)
	addl	$2, -4(%ebp)
	movl	8(%ebp), %eax
	notl	%eax
	shrl	$31, %eax
	movzbl	%al, %eax
	addl	%eax, -8(%ebp)
L2:
	cmpl	$0, 8(%ebp)
	jg	L3
	movl	-8(%ebp), %eax
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc
LFE6:
	.def	___main;	.scl	2;	.type	32;	.endef
	.section .rdata,"dr"
LC0:
	.ascii "Enter x: \0"
LC1:
	.ascii "%d\0"
LC2:
	.ascii "sqrt(x) = %d\0"
	.text
	.globl	_main
	.def	_main;	.scl	2;	.type	32;	.endef
_main:
LFB7:
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	andl	$-16, %esp
	subl	$32, %esp
	call	___main
	movl	$LC0, (%esp)
	call	_printf
	leal	24(%esp), %eax
	movl	%eax, 4(%esp)
	movl	$LC1, (%esp)
	call	_scanf
	movl	24(%esp), %eax
	movl	%eax, (%esp)
	call	_mySqrt
	movl	%eax, 28(%esp)
	movl	28(%esp), %eax
	movl	%eax, 4(%esp)
	movl	$LC2, (%esp)
	call	_printf
	call	_getch
	movl	$0, %eax
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc
LFE7:
	.def	_printf;	.scl	2;	.type	32;	.endef
	.def	_scanf;	.scl	2;	.type	32;	.endef
	.def	_getch;	.scl	2;	.type	32;	.endef
manowar111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление квадратного корня вручную 6AZblJlb Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 16.11.2011 04:02
Метод квадратного корня kitty_girl Помощь студентам 2 04.11.2011 14:17
Вычисление квадратного корня Wera Visual C++ 7 09.07.2010 19:23
Вычисление квадратного корня в Delphi TaYgA Помощь студентам 17 08.11.2009 18:16
Метод квадратного корня RrR007 Помощь студентам 0 10.06.2009 21:01