刚开始学linux下汇编语言的开发,问一个菜鸟问题
小女子这两天刚开始学习linux下汇编语言的开发,所以想请教各位一个菜鸟问题.为了看看在linux的汇编语言中,协处理器8087的指令是什么样的,我写了一段简单的c代码,这段代码写在一个名为test.c的文件中
void main()
{
double a,b,c;
a=12.45;b=53.21;c=43.63;
a=a+b;
b=a*c;
c=a/b;
if(a>;2)
{
a=3.0;
return;
}
else
{
b=12.5;
return;
}
}
然后,在linux下,我输入"gcc -S test.c"这条命令,得到了与test.c文件相对应的汇编语言的文件test.s. 在test.s的汇编语言代码中,我有一些地方不明白,所以想向各位请教.我将这段汇编语言的代码提在了下面,其中,标有"#????"
号的语句是我不明白的语句,情大家帮帮忙.
.file "test.c"
.version "01.01"
gcc2_compiled.:
.section .rodata #????
.align 8 #????
.LC0: #????
.long 0x0,0x40000000 #????
.text
.align 4 #????
.globl main
.type main,@function
main:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl $1717986918, -8(%ebp)
movl $1076422246, -4(%ebp)
movl $1202590843, -16(%ebp)
movl $1078631137, -12(%ebp)
movl $-687194767, -24(%ebp)
movl $1078317219, -20(%ebp)
fldl -8(%ebp)
faddl -16(%ebp)
fstpl -8(%ebp)
fldl -8(%ebp)
fmull -24(%ebp)
fstpl -16(%ebp)
fldl -8(%ebp)
fdivl -16(%ebp)
fstpl -24(%ebp)
fldl -8(%ebp)
fldl .LC0 #????
fxch %st(1) #????
fucompp #????
fnstsw %ax #????
testb $69, %ah #????
je .L4
jmp .L3
.p2align 2 #????
.L4:
movl $0, -8(%ebp)
movl $1074266112, -4(%ebp)
jmp .L2
.p2align 2 #????
.L3:
movl $0, -16(%ebp)
movl $1076428800, -12(%ebp)
.L2:
leave
ret
.Lfe1: #????
.size main,.Lfe1-main #????
.ident "GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.3 2.96-110)"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论