Yes, you got the meaning correctly figured out.
For later reference, you can just stick such code into an assembly file and step through in a debugger. From the at&t syntax I assume it is intended for gas
, the gnu assembler. You can test it like this:
$ cat > test.s
.att_syntax noprefix
.globl _start
_start:
fldl x
fldl y
fmulp st, st(1)
fldl z
faddp st, st (1)
fstpl z
.data
x: .double 2
y: .double 3
z: .double 4
$ gcc -m32 -nostdlib -g test.s
$ gdb ./a.out
(gdb) b _start
Breakpoint 1 at 0x80480b8: file test.s, line 4.
(gdb) r
Starting program: /var/tmp/./a.out
Breakpoint 1, _start () at test.s:4
4 fldl x
(gdb) s
5 fldl y
(gdb)
6 fmulp st, st(1)
(gdb)
7 fldl z
(gdb)
8 faddp st, st(1)
(gdb)
9 fstpl z
(gdb)
0x080480d4 in ?? ()
(gdb) x/gf &z
0x80490e4: 10
Note I have added some test input at the end, and some needed stuff at the top.
You can of course examine all registers during the execution at any point too, see gdb help for other commands.