汇编指令初步之演示代码

ATT汇编代码

格式:指令 源操作数 ,目的操作数  如“movl $8 , %eax”

以演示1005.s为例

一、汇编,输入指令“as -gstabs 1005.s -o 1005.o”-“objdump -d 1005.o”将汇编代码转变成机器指令,得到如下界面

其中冒号前面的数表示首地址的序号,冒号后面的第一行是 操作的机器指令

二、链接,输入指令“ld 1005.o -o 1005”-“objdump -d 1005”,得到如下界面

其中冒号前面的数表示的是该指令存储单元的首地址

三、运行,输入“./1005”(其中“./”表示目录的意思);输入“gdb -q 1005”进入调试,“b *_start+1”将断点设置在程序第六行(nop时程序还没开始执行操作)

四、开始运行程序,此时断点在第六行

输入“info reg”查看寄存器内的数据

此时还没有对寄存器进行操作,故寄存器为初始状态

输入“n”或者“next”(当没有函数的时候step与next功能相同)继续运行程序,每运行一次就查看一次寄存器内的数据就可以大概知道这段汇编代码时怎么执行操作的了

可以看出,此时寄存器eax中放入了立即数4

可以看出,此时寄存器ebx中放入了立即数1

可以看出,此时寄存器ecx中放入了立即数5

可以看出,此时寄存器edx中放入了立即数13

可以看出movl %eax,%ebx操作为将寄存器eax中的值复制到ebx中去

可以看出,将立即数1送入到了寄存器eax中

可以看出,将立即数0送入到了寄存器ebx中

程序运行到碰见int $0x80即中断演示完成

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值