雨落叶哭 发表于 2020-6-20 21:05

汇编语言



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;

wop1999 发表于 2020-6-20 22:01

boy7928 发表于 2020-6-20 22:36

应该是笔记一类的吧

yunkof 发表于 2020-6-20 23:14

不错嘛,都开始学汇编了,我现在学完汇编,在看windows程序设计这本书了,好厚

雾都孤尔 发表于 2020-6-20 23:51

一起学习,共同进步

张大炮xmz 发表于 2020-6-20 23:59

汇编是真的恶心人,汇编玩得溜的感觉思维都和正常人类不一样了,都是大佬

lslinlu 发表于 2020-6-21 00:11

好熟悉,前两天刚考完汇编

雨落叶哭 发表于 2020-7-2 19:10

wop1999 发表于 2020-6-20 22:01
什么东西

笔记,小菜鸡才开始学习逆向

雨落叶哭 发表于 2020-7-2 19:11

lslinlu 发表于 2020-6-21 00:11
好熟悉,前两天刚考完汇编

我们都没有学习汇编

雨落叶哭 发表于 2020-7-2 19:12

张大炮xmz 发表于 2020-6-20 23:59
汇编是真的恶心人,汇编玩得溜的感觉思维都和正常人类不一样了,都是大佬

我看了好几遍,才大概明白一些
页: [1]
查看完整版本: 汇编语言