计原实验一 VScode GDB调试 反汇编

本文通过具体的汇编代码分析了如何在C语言中定义并使用单精度浮点数结构体,展示了如何将浮点数转换为十六进制形式及如何拆解浮点数的各个组成部分。

-exec disassemble

Dump of assembler code for function main:
   0x00000000080006aa <+0>:	push   %rbp
   0x00000000080006ab <+1>:	mov    %rsp,%rbp
   0x00000000080006ae <+4>:	sub    $0x20,%rsp
   0x00000000080006b2 <+8>:	mov    %fs:0x28,%rax
   0x00000000080006bb <+17>:	mov    %rax,-0x8(%rbp)
   0x00000000080006bf <+21>:	xor    %eax,%eax
   0x00000000080006c1 <+23>:	movss  0x13f(%rip),%xmm0        # 0x8000808
   0x00000000080006c9 <+31>:	movss  %xmm0,-0x14(%rbp)
   0x00000000080006ce <+36>:	movss  -0x14(%rbp),%xmm0
   0x00000000080006d3 <+41>:	cvtss2sd %xmm0,%xmm0
   0x00000000080006d7 <+45>:	lea    0x116(%rip),%rdi        # 0x80007f4
   0x00000000080006de <+52>:	mov    $0x1,%eax
   0x00000000080006e3 <+57>:	callq  0x8000580 <printf@plt>
   0x00000000080006e8 <+62>:	lea    -0x14(%rbp),%rax
   0x00000000080006ec <+66>:	mov    (%rax),%eax
   0x00000000080006ee <+68>:	mov    %eax,%esi
   0x00000000080006f0 <+70>:	lea    0x101(%rip),%rdi        # 0x80007f8
   0x00000000080006f7 <+77>:	mov    $0x0,%eax
   0x00000000080006fc <+82>:	callq  0x8000580 <printf@plt>
   0x0000000008000701 <+87>:	lea    -0x14(%rbp),%rax
   0x0000000008000705 <+91>:	mov    %rax,-0x10(%rbp)
   0x0000000008000709 <+95>:	mov    -0x10(%rbp),%rax
   0x000000000800070d <+99>:	mov    (%rax),%eax
   0x000000000800070f <+101>:	and    $0x7fffff,%eax
   0x0000000008000714 <+106>:	mov    %eax,%ecx
   0x0000000008000716 <+108>:	mov    -0x10(%rbp),%rax
   0x000000000800071a <+112>:	movzwl 0x2(%rax),%eax
   0x000000000800071e <+116>:	shr    $0x7,%ax
   0x0000000008000722 <+120>:	and    $0xff,%ah
   0x0000000008000725 <+123>:	movzbl %al,%eax
   0x0000000008000728 <+126>:	lea    -0x7f(%rax),%edx
   0x000000000800072b <+129>:	mov    -0x10(%rbp),%rax
   0x000000000800072f <+133>:	movzbl 0x3(%rax),%eax
   0x0000000008000733 <+137>:	shr    $0x7,%al
   0x0000000008000736 <+140>:	movzbl %al,%eax
   0x0000000008000739 <+143>:	mov    %eax,%esi
   0x000000000800073b <+145>:	lea    0xba(%rip),%rdi        # 0x80007fc
   0x0000000008000742 <+152>:	mov    $0x0,%eax
   0x0000000008000747 <+157>:	callq  0x8000580 <printf@plt>
   0x000000000800074c <+162>:	mov    $0x0,%eax
   0x0000000008000751 <+167>:	mo
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值