汇编语言中的call是什么意思

2024-11-29 12:29:57
推荐回答(4个)
回答1:

意思:指REMOTE CALL、游戏CALL,指一种注入外部EXE程序从外部调用函数的技术。找CALL一般使用OD等工具,而CALL的使用一般需要编写复杂的汇编代码。

call指令的用法

1、call+标号

这个指令是先将call+标号的下一条语句的IP放入栈中,然后使当前的IP+16位位移。

jmp有个指令格式是:jmp near ptr标号,这里的call唯一这种jmp多的一步就是多了一次入栈操作;

call far ptr+标号

这个指令是先将call指令的下一个指令的代码段地址入栈,再把call下一条指令的偏移地址入栈,然后使其跳到标号所在处。

jmp指令的:jmp far ptr标号,这种jmp的使用是在段间转移的,这种call和jmp的区别就是多了两次入栈的操作;

3、call+16位寄存器

这个指令先将call的下一条指令的IP入栈,然后再以ax为IP的代码处

jmp指令:jmp+16位寄存器,这里的call唯一比jmp多的一步就是多了一步入栈操作;

扩展资料:

VB关键字(调用)

用于将程序的执行交给其他的代码段,通常是一个子例程,同时保存必要的信息,从而使被调用段执行完毕后返回到调用点继续执行。

描述

将控制权传递给Sub过程或Function过程。

语法

[Call]name[argumentlist]

Call语句语法有以下部分:

部分描述

Call可选关键字。如果指定此关键字,则必须用括号把argumentlist括起来。例如:

Call MyProc(0)

name必选。要调用的过程名。

argumentlist可选。传递给过程的变量、数组或表达式列表,用逗号分隔每一项。

说明

在调用过程时,不必使用Call关键字。然而,如果使用Call关键字调用要求参数的过程,则必须用括号将argumentlist括起来。如果省略Call关键字,那么必须也同时省略argumentlist参数两边的括号。使用Call语法调用内部函数或使用用户自定义函数,函数返回值都会被放弃。

参考资料:

百度百科——call

回答2:

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指令

回答3:

CALL(LCALL)指令执行时,进行两步操作:   (1)将程序当前执行的位置IP压入堆栈中;   (2)转移到调用的子程序。

回答4:

汇编语言中的call是什么意思
是“调用子程序”的意思。