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