x86彙編第三天學習之堆棧以及跳轉指令

PUSH指令

功能:
1、往堆棧中壓入數據
2、棧頂指針ESP寄存器-4

格式:

  • PUSH r32
  • PUSH r16
  • PUSH m16
  • PUSH m32
  • PUSH imm8/imm16/imm32

舉例:
在這裏插入圖片描述
堆棧圖:
在這裏插入圖片描述

POP指令

功能:

1、往堆棧中取數據

2、棧頂指針ESP寄存器+4

格式:

  • POP r32
  • POP r16
  • POP m16
  • POP m32

JMP指令

目的: 修改EIP寄存器的值!,即直接跳轉到目的地址

格式: JMP 寄存器/立即數/內存(內存只能是dword類型)

範例:

  • JMP 0x1f3300
  • JMP eax
  • JMP dowrd ptr es:[0x11f3300]

CALL指令

目的: PUSH下一行要執行的地址,並JMP到目的地址

格式: call 寄存器/立即數/內存(內存只能是dword類型)

**與JMP區別:**先講下一行要執行地址入棧

範例:

  • CALL 0x1f3300
  • CALL eax
  • CALL dowrd ptr es:[0x11f3300]

老鐵們覺得有用的話記得給個贊哦!!!我是航行的土豆!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章