TC官方合作论坛
标题:
子程序的关键call,就是子程序的手机码。
[打印本页]
作者:
剑仙十号
时间:
2016-2-11 13:59
标题:
子程序的关键call,就是子程序的手机码。
子程序的关键call,就是子程序的手机码。
用读基址的值+偏移,代替找图找色,找字识字。
用找call写call,代替TC的按鼠标按键盘。
在电脑中,一个程序往往由主程序和很多个子程序组成。子程序在不被调用时,都是静止状态。每一子程序都配有一个手机码。
主程序需要子程序时,只需要call 0x的手机号码,就能把子程序叫出来干活。
对于带参子程序,也是一样的。
先是把参数传进去,再call 0x的手机号码,就能把子程序叫出来干活。
//
//
push 10//把十六进制的10,放入栈的最上层。
push eax//把eax里面的数值,放入栈的最上面。
pop ecx//把栈中最上面的数值,取出来,放入ecx里面。
在汇编语言中,内存地址两边加[],表示取里面的值。
mov ecx, [ecx]
mov [eax + 0x4], ecx
[ecx],表示寄存器ecx里面装的是内存地址。这个表示取寄存器里面的,内存地址里面的值。
mov ecx,[ecx],,,再把值传递到ecx寄存器中。
//
//
什么是变量?
在硬件内存条中,最小的单位是进制位(bit)。
进制位上面是内存单元。内存单元的单位是字节(Byte)。
每个内存单元都对应着一个内存地址(例如0x00401000)。
//
变量是在内存地址中申请一个或者几个内存单元。
把这些连续的内存单元比喻成盒子,可以装东西。
//
一个程序写好后,打开后,系统会给它分配4G的虚拟内存空间。
在4G的虚拟内存空间中,全局变量就是基址,是根据0x00401000来分配的,所以是稳定不变的。
线程变量就是动态地址,是开启线程才分配的,所以会动态变化的。
局部变量是在栈中分配的,不讨论。
变量的作用域。
变量的数据类型。
变量和关键字的命名。
全局变量和内存基址。线程变量和动态内存地址。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1