LINUX.ORG.RU

История изменений

Исправление alman, (текущая версия) :

Нет нет. Я не предлагаю дизассемблировать бинарный код x86.

$ cat tst.c

int main() {
  puts("Hello world");
  return 0;
}

$ gcc -S tst.c

	.file	"tst.c"
	.section	.rodata
.LC0:
	.string	"Hello world"
	.text
.globl main
	.type	main, @function
main:
	leal	4(%esp), %ecx
	andl	$-16, %esp
	pushl	-4(%ecx)
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ecx
	subl	$4, %esp
	movl	$.LC0, (%esp)
	call	puts
	movl	$0, %eax
	addl	$4, %esp
	popl	%ecx
	popl	%ebp
	leal	-4(%ecx), %esp
	ret
	.size	main, .-main
	.ident	"GCC: (Debian 4.3.2-1.1) 4.3.2"
	.section	.note.GNU-stack,"",@progbits

Вот этот текст можно перегнать в текст для макроассемблера «Эверест». По крайней мере теоретически такая возможность есть. Кстати, флаги совпадают почти полностью.

Исправление alman, :

Нет нет. Я не предлагаю дизассемблировать бинарный код x86.

$ cat tst.c

int main() {
  puts("Hello world");
  return 0;
}

$ gcc -S tst.c

	.file	"t.c"
	.section	.rodata
.LC0:
	.string	"Hello world"
	.text
.globl main
	.type	main, @function
main:
	leal	4(%esp), %ecx
	andl	$-16, %esp
	pushl	-4(%ecx)
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ecx
	subl	$4, %esp
	movl	$.LC0, (%esp)
	call	puts
	movl	$0, %eax
	addl	$4, %esp
	popl	%ecx
	popl	%ebp
	leal	-4(%ecx), %esp
	ret
	.size	main, .-main
	.ident	"GCC: (Debian 4.3.2-1.1) 4.3.2"
	.section	.note.GNU-stack,"",@progbits

Вот этот текст можно перегнать в текст для макроассемблера «Эверест». По крайней мере теоретически такая возможность есть. Кстати, флаги совпадают почти полностью.

Исправление alman, :

Нет нет. Я не предлагаю дизассемблировать бинарный код x86.

$ cat tst.c

int main() {
  puts("Hello world");
  return 0;
}

$ gcc -S tst.c

	.file	"t.c"
	.section	.rodata
.LC0:
	.string	"Hello world"
	.text
.globl main
	.type	main, @function
main:
	leal	4(%esp), %ecx
	andl	$-16, %esp
	pushl	-4(%ecx)
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ecx
	subl	$4, %esp
	movl	$.LC0, (%esp)
	call	puts
	movl	$0, %eax
	addl	$4, %esp
	popl	%ecx
	popl	%ebp
	leal	-4(%ecx), %esp
	ret
	.size	main, .-main
	.ident	"GCC: (Debian 4.3.2-1.1) 4.3.2"
	.section	.note.GNU-stack,"",@progbits

Вот этот текст можно перегнать в текст для макроассемблера «Эверест». По крайней мере теоретически такая возможность есть.

Исходная версия alman, :

Нет нет. Я не предлагаю дизассемблировать бинарный код x86.

$ cat tst.c

int main() {
  puts("Hello world");
  return 0;
}

$ gcc -S tst.c

	.file	"t.c"
	.section	.rodata
.LC0:
	.string	"Hello world"
	.text
.globl main
	.type	main, @function
main:
	leal	4(%esp), %ecx
	andl	$-16, %esp
	pushl	-4(%ecx)
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ecx
	subl	$4, %esp
	movl	$.LC0, (%esp)
	call	puts
	movl	$0, %eax
	addl	$4, %esp
	popl	%ecx
	popl	%ebp
	leal	-4(%ecx), %esp
	ret
	.size	main, .-main
	.ident	"GCC: (Debian 4.3.2-1.1) 4.3.2"
	.section	.note.GNU-stack,"",@progbits

Вот этот текст можно перегнать в текст для макроассемблера «Эверест».