iOS安全攻防--(汇编七)

Loop指令

  • loop指令和cx寄存器配合使用,用于循环操作类似高级语言的for,while
  • 使用格式
    mov cx,循环次数
标号:
    循环执行的程序代码
    loop 标号
  • loop指令流程
    步骤1 先将cx寄存器的值 - 1, cx = cx - 1
    步骤2 判断cx 的值
    • 如果不为零执行标号的代码,又执行 步骤 1
    • 如果为零执行loop后面的代码

补充:
获取数据,除了通过ds段来获取.还可以利用其它段地址来获取
mov ax,ds:[0]
mov ax,cs:[0]
mov ax,ss:[0]
mov ax,es:[0]

8086伪指令

  • db(define byte) 自定义字节
  • dw(define word)自定义字

Call和ret指令

Call指令
  • call标号
  • 将下一条指令的偏移地址入栈!
  • 跳转到定位的地址执行指令!
ret指令
  • ret指令就是将栈顶的值POP给IP
    • IP:执行指令的指针

栈平衡

  • 编译器在执行完函数的时候,会把除了下一条指令的偏移地址外,所有的push进栈的数据都pop掉,以保证跳出函数是能跳转到指定的地址执行指令。

你可能感兴趣的:(iOS安全攻防--(汇编七))