DNF阿飞自定义CALL转换器是一款制作DNF外挂必备的辅助工具,绿色免费,非常适合喜欢破解软件和自己写辅助的朋友使用。
什么是汇编语言
编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。
汇编语言中的call是什么意思
CALL(LCALL)指令执行时,进行两步操作:
(1)将程序当前执行的位置IP压入堆栈中;
(2)转移到调用的子程序。(CALL近调用,LCALL远调用, CALL 寻址2K空间范围 LCALL 寻址64K空间范围) CALL与RET结合使用,当CALL调用的子程序运行到RET命令时,压入堆栈的IP弹出,跳出子程序,开始执行CALL的下一条语句。
例:main: setb p1.0; lcall delay; clr p1.0; lcall delay; ajmp main; delay: mov r7,#250;d1: mov r6,#250;d2: djnz r6,d2; djnz r7,d1; ret ; end;
当执行LCALL时,把该语句的IP(或者说PC)压入堆栈,开始进入子程序DELAY,当执行到RET时,堆栈中的IP出栈,LCALL的继续执行下一条语句。
一般来说,执行一条CALL指令相当于执行一条PUSH指令加一条JMP指令
汇编call 命令解析
不同的CPU可能有不同的规定。下面只说常见的简单CPU的指令。
常见的CPU的CALL指令(“调用”指令)的功能,就是以下两点:
(1)将下一条指令的所在地址(即当时程序计数器PC的内容)入栈,
(2)并将子程序的起始地址送入PC(于是CPU的下一条指令就会转去执行子程序)。
而子程序结尾处通常都要编写一条RET指令(“返回”指令),RET指令的功能就是一条:
从栈中取出一条数据送入PC。
从上面叙述可以看出,正常情况下,RET指令从栈中取出的一条数据,也就是当初被CALL指令所入栈的下一条指令的所在地址。
因此,RET指令后,CPU的下一条指令就回去执行当初的CALL指令的下一条了。
至于其他操作,如sweetsugar123兄所说的“保护寄存器现场”等等,一般并非CALL指令的功能,而是需要程序员自行在子程序内编写程序实现的。这些操作通常也需要用到堆栈。基于堆栈的“后进先出”性质,这些操作可以不干扰CALL和RET指令的“保存返回地址”的功能
亲,因本软件内附注册机或由易语言编写,涉及内存的读写所以被360,QQ管家等杀毒、安全防护软件报毒,本站承诺保证绝对不会绑定任何木马及破坏用户电脑的程序,更不会收录任何恶意绑定有损用户电脑的软件,本软件经本站编辑在虚拟机上测试没有发现此软件对电脑有任何影响,纯属误报,请亲们自行斟酌下载,如需使用请将软件加入信任列表,请参照本站的 360报毒处理文档或是阅读 下载帮助
- PC官方版
- 安卓官方手机版
- IOS官方手机版