汇编语言
1.32位通用寄存器EAX ESPECX EBPEDX ESIEBX EDI
2.MOV指令立即数到寄存器 MOV EAX,1;寄存器到寄存器 MOV EAX,EBX;立即数到内存 MOV DWORD PTR DS:,1;寄存器到内存 MOV DWORD PTR DS:,EAX;内存到寄存器 MOV EAX,DWORD PTR DS:;
3.存储模式大端模式:数据高位在低位,数据低位在高位小端模式:数据低位在高位,数据高位在低位
4.常用汇编指令add//加法sub//减法and//和or//或xor //异或运算not //取反指令movs//移动指令,从内存到内存
5.MOVS指令:移动数据 内存到内存MOVS BYTE PTR ES,BYTE PTR DS:
6.STOS指令:将AL/AX/EXAX的值储存到指定的内存单元
7.REP指令:按计数寄存器(ECX)中指定的次数重复执行字符串指令MOV ECX,10;REP MOVSD;REP STOSD;
8.堆栈堆栈就是一块内存,操作系统在程序启动的时候已经分配好的,供程序执行时使用。和数据结构的堆栈无关ESP中存储了当前的堆栈
9.PUSH指令功能:向堆栈中压入数据修改栈顶指针PUSH EAX;
10.POP指令功能:将栈顶数据存储到寄存器/内存修改栈顶指针ESP寄存器POP EAX;
11.无条件跳转 修改EIP(EIP的值是cpu下一次执行指令的地址) mov指令不能修改EIP JMP指令: JMP 寄存器/立即数/内存; (mov EIP,寄存器/立即数/内存;) CALL指令: CALL 寄存器/立即数/内存; (PUSH 下一行地址;mov EIP,寄存器/立即数/内存;) RET指令: RET (ADD ESP ,4;MOV EIP,;)
12.有条件跳转 JCC 标志寄存器
13.函数 用JMP来执行函数 用CALL来执行函数 用来堆栈传参
14.堆栈平衡 如果要返回父程序,则当在堆栈进行堆栈的操作的时候,一定要保证在RET这条指令之前, ESP指向的是压入栈中的地址。 如果通过堆栈传递参数了,那么在函数执行完毕后,要平衡参数导致的堆栈变化. 平衡方式:内平栈,外平栈
15.ESP寻址和EBP寻址 ESP(栈顶指针) EBP(栈底指针) 原因:EBP位置相对稳定 过程: PUSH EBP; MOV EBP = ESP;
应该是笔记一类的吧 不错嘛,都开始学汇编了,我现在学完汇编,在看windows程序设计这本书了,好厚 一起学习,共同进步 汇编是真的恶心人,汇编玩得溜的感觉思维都和正常人类不一样了,都是大佬 好熟悉,前两天刚考完汇编 wop1999 发表于 2020-6-20 22:01
什么东西
笔记,小菜鸡才开始学习逆向 lslinlu 发表于 2020-6-21 00:11
好熟悉,前两天刚考完汇编
我们都没有学习汇编 张大炮xmz 发表于 2020-6-20 23:59
汇编是真的恶心人,汇编玩得溜的感觉思维都和正常人类不一样了,都是大佬
我看了好几遍,才大概明白一些
页:
[1]