AT&T学习笔记汇编之控制指令


跳转
jmp label

call addresss
调用函数先将eip入栈,eip指向函数的地址

esp直接使用栈中的数据
push pop引用堆栈中的数据

程序通常把esp复制到ebp在使用ebp获取call指令之前传递给栈的信息。


function_label:
    pushl %ebp
    movl %esp , %ebp
    <...normal code...>
    movl %ebp , %esp
    popl %ebp
    ret

eflags
0 carry  借位 错位
11 overflow 溢出
2 prtity 奇偶校验
7 sign    符号
6 zero  0标识

跳转指令
ja jae  jb jbe
jc jcxz jecxz 进位跳转
je jg jge jl jle jna jnae jnb jnbe
jnc jne jng jnge jnl jnle
jno
jnp
jns
jnz
jo jp jpe jpo js jz


cmp op1 , op2
op2 - op1
jge grater

0标识
movl $30 , %eax
subl $30 , %eax

溢出标志
movl $1 , %eax
movb 0x7f , %bl
addb $10 , %bl
jo overhere
int $0x80

overhere:
    movl $0 , %ebx
    int $0x80


jz overhere

loop循环指令
loop address 直到ECX为0
loope/loopz  或者没有设置ZF标志
loopne/loopnz  或者设置了ZF标志

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值