主要记录一些不容易记但经常用到的汇编语言关键词和重要指令。
循环
loop 执行循环
loope和loopne就是比loop多了一个测试ZF标志位的东西
loope是只有在CX不等于0和ZF=1的情况下才执行循环
loopne是是只有在CX不等于0和ZF=0的情况下才执行循环
寄存器
ESP和EBP
ESP
ESP是扩展堆栈指针寄存器(Extended stack pointer),用于堆栈指针,存放着当前堆栈栈顶地址。ESP是SP的32位版本。堆栈是一段按照后进先出(LIFO)原则组织起来的连续存储区域。用于程序保存或恢复数据,或用于子程序调用及中断响应时保护与恢复现场。
一般情况下,对ESP有影响的指令,对ESP的操作都是隐式的,就是说ESP并不出现在指令操作数当中。
例如:
PUSH AX ; 累加器AX的内容压栈保存,(ESP)=(ESP)- 4
POP BX ; 堆栈内保存的累加器AX的内容弹出到BX寄存器中,(ESP)=(ESP)+ 4
使用PUSH、POP指令使用堆栈,要注意进出栈的匹配,否则将引起不可预期的后果。
ESP始终指向栈顶,用它只可访问栈顶,可以通过sub,push,call等指令改变ESP的值.
ESP为栈指针,用于指向栈的栈顶(下一个压入栈的活动记录的顶部),而EBP为帧指针,指向当前活动记录的底部。
当函数被调用的时候,执