-1
int i;
float x;
double d;
char c;
x=10;
i=19;
// below assm code for this line only.
c=x<i; // below ass code show c=10? why it should be 1
Assembly Code:Assembly Code nicht korrektes Ergebnis zum Vergleich op geben
# 39
# b_push_ext_addr (c)
subl $8, %esp
movl $c, (%esp)
# b_push_ext_addr (x)
subl $8, %esp
movl $x, (%esp)
# b_deref (float)
movl (%esp), %eax
movl (%eax), %edx
movl %edx, (%esp)
# b_convert (float -> double)
flds (%esp)
fstpl (%esp)
# b_push_ext_addr (i)
subl $8, %esp
movl $i, (%esp)
# b_deref (signed int)
movl (%esp), %eax
movl (%eax), %edx
movl %edx, (%esp)
# b_convert (signed int -> double)
fildl (%esp)
fstpl (%esp)
# b_arith_rel_op (< , double)
fldl 8(%esp)
fldl (%esp)
addl $8, %esp
fucompp
fnstsw %ax
testb $69, %ah
sete %al
movzbl %al, %eax
movl %eax, (%esp)
# b_convert (double -> signed char)
fldl (%esp)
subl $8, %esp
fnstcw 6(%esp)
movzwl 6(%esp), %eax
movb $12, %ah
movw %ax, 4(%esp)
fldcw 4(%esp)
fistpl 8(%esp)
fldcw 6(%esp)
addl $8, %esp
# b_assign (signed char)
movzbl (%esp), %edx
addl $8, %esp
movl (%esp), %eax
movb %dl, (%eax)
movb %dl, (%esp)
# b_pop()
addl $8, %esp
Sie sollten anfangen, Kurs-Credits zu bekommen ;-) –
@Jester Danke. – user836026
Ich versuche herauszufinden, wie Sie Ihre ESP-Kräfte verwendet haben, um festzustellen, was die eigentliche Frage hier war ... @Jester –