汇编中子程序不call它,会顺序执行吗?

作者&投稿:称爱 (若有异议请与网页底部的电邮联系)
汇编语言定义的子程序不用call也能运行~

是的。汇编这样,算是一个特点吧。即,遇到子程序时,即使是proc指令,它也不认,就是执行,遇到ret返回之前断点即call指令的下一句,也可以这样理解:不管call不call,子程序都执行。就如同loop一样,不管cx里面的循环次数是几,loop前面的要循环的指令至少要执行一次,遇到loop之后才减1判断是否等于0。所以,如同楼主所讲,要把子程序放到调用返回DOS中断命令之后才可以。否则会乱套。

是的,遇子程序也会顺序执行。所以子程序前面必须有跳转指令,不能进入子程序,以免程序混乱 。

我也是初学者,不过这还算比较清楚。
汇编中的call是调用子程序的。这和在高级语言里调用函数的道理一样。所以不会顺序执行。
call分为:段内直接近调用,段内间接调用,段间直接调用和段间间接调用。

不call它,不能顺序执行
你把子程序放入整个代码中,子程序是可以执行的,
但是
当程序执行到ret时就会(如果ret之前没有call语句的话)跳转到汇编程序开始处,继续执行
你可以进行一下单步仿真
结果就一目了然了

不会。会的话肯定论套了


碳酸盐熔体不混溶作用模拟
程序运行过程中,按照屏幕提示,依次提供以下参数:method 选择热力学模型 OFN 输出文件名 Nbuf 氧逸度缓冲剂 PGPa 设定的压力(GPa)Tmax 温度上限 Tmin 温度下限 Tstep 温度循环增量 样品名称和氧化物含量通过调用子程序READIN由键盘输入。程序每次运行可设定不同的压力,对不同的样品进行循环计算。(...

如何模拟采空区的风流
%遗传算法子程序 %Name: calobjvalue.m %实现目标函数的计算 function [objvalue]=calobjvalue(pop) temp1=decodechrom(pop,1,10); %将pop每行转化成十进制数 x=temp1*10\/1023; %将二值域 中的数转化为变量域 的数 objvalue=10*sin(5*x)+7*cos(4* x); %计算目标函数值 % 2.3 计算个体的适应...

以一个算术表达式作为命令行参数,要怎么写
4.子程序与过程: (1)子程序设计与调用。 (2)过程与过程文件。(3)局部变量和全局变量、过程调用中的参数传递。 5.命令文件的编译与使用。 (四)系统环境和状态参数1.常用的SET命令: (1)常用的开关状态设置命令。 (2)常用的环境参数设置命令。 2.FoxBASE+的系统配置文件:CONFIG.FX配置文件的作用。 已赞过...

vb读取excel计算公式
你的问题比较复杂,可能不是两分钟就能解决的 1、首先要加载excel引用 2、连接excel 3、读取excel中的内容,至少是三个数组 4、匹配问题、显示的问题就是普通的VB了 这里的关键是:连接excel:做个子程序:Dim myexcel As Object myexcel = CreateObject("excel.application")myexcel.Visible = True ...

"怎样编写程序将30H,31H,32H单元中的3个数字按从小到大的顺序排列,结果...
LCALL GET_TEMPER ;调用读温度子程序 LCALL TEMPCOV LCALL JDQGZ LCALL DISPLAY ;调用数码管显示子程序 AJMP MOD7 TEMP0: INC A AJMP TEMP1 TEMPCOV: MOV A,TEMPER_L ;数据处理子程序TEMPCOV MOV B,#16 DIV AB JB B.3,TEMP0 TEMP1: MOV 34H,A ;将TEMPER_L的高四位右移四位,存入34H中...

急急!!求助matlab高手
% calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。%遗传算法子程序%Name: calobjvalue.m%实现目标函数的计算function [objvalue]=calobjvalue(pop)temp1=decodechrom(pop,1,10); %将pop每行转化成十进制数x=temp1*10\/1023; %将二值域 中的数转化为变量...

“炎热指数”是怎么计算出来的?
2程序说明 高温热浪指标计算软件包含两个fortran程序:cal_et_value.for和heatwave_fst.for。其中,cal_et_value.for为计算单站炎热临界值程序,heatwave_fst.for为单站热浪等级预报程序。两个程序均以子程序形式编写,可在用户程序中直接调用。1、cal_et_value.for (1)程序功能:程序根据输入的单站...

双三次样条内插网格化方法软件的研制开发及应用
这些子程序中有些源程序是由汇编语言编写而成,个别关键的子程序甚至还缺少源程序。出于技术保密等原因,当时随机引进的资料中没有网格化程序方法技术方面的资料,加上所给的源程序中的说明语句又很少,从而对其进行消化吸收和剖析工作无法进行。这些年来,IBM4341机网格化程序所采用的网格化方法技术始终是个难解之谜。 二...

谁能帮我做几道题,追加加50分,说话算话,急!!
是Windows的图像文件格式,许多Windows应用程序都可编辑显示它,如:Windows的画图软件、Firework、Photoshop等均可打开并编辑。 .C C语言源程序。 .CAB (Cabinet ) Windows系统的或其应用软件安装前的压缩文档。在安装过程中,它由自己的或Windows系统的安装程序解压和展开。也可用Winzip v6.3解压。 .CAL Windows日历...

centos java进程 怎么被启动的
ps S 列出程序时,包括已中断的子程序资料。 ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。 ps u 以用户为主的格式来显示程序状况。 ps x 显示所有程序,不以终端机来区分。 最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。 ps aux...

湖口县17651925223: 汇编中子程序不call它,会顺序执行吗? -
照宣地氯: 你好!不call它,不能顺序执行 你把子程序放入整个代码中,子程序是可以执行的,但是 当程序执行到ret时就会(如果ret之前没有call语句的话)跳转到汇编程序开始处,继续执行 你可以进行一下单步仿真 结果就一目了然了 如有疑问,请追问.

湖口县17651925223: 汇编语言中如果调用完了子程序,那么子程序回不回被接下来又被顺序执行? -
照宣地氯: 一般主程序都是无限循环的,不会往下执行的.

湖口县17651925223: 汇编语言中子程序是不是只有遇到RET才会返回主程序否则就继续运行下去 -
照宣地氯: 不全是,一般情况下是有RET才返回主程序,但是如果子程序中有无条件或有条件跳转指令(条件满足)也可跳转到程序(含主程序、子程序、其他程序)的制定位置!

湖口县17651925223: 汇编语言中LCALL和JMP有什么区别啊? -
照宣地氯: LCALL是调用子程序,当子程序执行完后就返回到LCALL指令下一条指令继续执行程序,而子程序是可以多次调用,也可以在任何位置调用.这是从哪里走的,还要返回哪里的.而JMP是无条件转移指令,转移到某执行程序后就不再返到回原处,是一去不回返的.

湖口县17651925223: 汇编中多个ORG的执行顺序 -
照宣地氯: 不执行A1,而是从START开始顺序往后执行.ORG 伪操作只影响编程时后面的指令代码放在什么地方,不影响指令执行过程.JMP指令是无条件转移指令,不是子程序调用的CALL指令,没有返回断点的功能.

湖口县17651925223: 汇编语言里面调用子程序问题 -
照宣地氯: 这不是返回自己本身循环执行,而是跳转到子程序的第一行循环而已,有什么不可以的,循环结构,任何地方都可以的.但有一点,子程序不论循环多少次,最终必须执行一行返加指令RET,也就是子程序必须要有一条RET指令,你的子程序最后是缺少一行RET指令的,加上了就可以的.

湖口县17651925223: 汇编语言 call怎么用 -
照宣地氯: 汇编语言CALL是调用子程序指令,用法如下: CALL 子程序名 参数的传递是通过调用者和被调用者的相互约定实现的. 在51汇编语言中CALL只能实现2K范围内的调用,大于这个限制就需要用到LCALL了. 比如: ORG 0000H LJMP MAIN: ...

湖口县17651925223: 汇编语言中的STR是什么意思.还有CALL指令怎么用? -
照宣地氯: 据我所知,汇编里面没有str这个指令,可能是人家定义的字符串或者宏你错误的理解成指令了,而call是个调用指令,即被call的是一个子程序,一旦用了,这个子程序就会被抓到当前位置执行一次.

湖口县17651925223: 关于汇编里子程序的问题 -
照宣地氯: 对子程序调用要有清晰理解.发生调用时,PC值会自动压栈,子程序返回指令RET使PC值自动出栈,程序返回调用指令的下一条指令处继续运行.在子程序中不是必须要进行push和pop的操作,如果有需要才执行这两条指令,需要注意的是,PUSH和POP必须配对,不然堆栈指针就被篡改了,到RET指令就不能返回正确地址了.不进行push和pop后面也必须用ret指令返回,已返回正确地址执行程序.

湖口县17651925223: 汇编一个子程序中CALL和RET的用法,不太懂!求高人指点.. -
照宣地氯: mov ah,2 int 21h本来就是一个转移程序,转移到21h这个中断向量表,然后取来面的ip和cs,所以执行这个指令的时候会先把当前的ip,cs压入堆栈,执行完后要用ret指令,来把前面压入堆栈的ip,cs弹出

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网