arm程序,在执行到rand函数时运行结束,这是为什么

arm程序,在执行到rand函数时运行结束,这是为什么,第1张

你是不是没有关闭句柄啊?

比如

fp=open();

whle(1)

read=(fp, , , )

close(fp);如果后面没有这句,导致句柄过多,系统会自动杀死进程,不过这个句柄的数量可以系统设定,但是这个数据程序中的一个bug,不可以小视他。

功能:一个数如果大于0则变成负值,如果已经为负值,则不变。

AREA Example, CODE,READONLY

ENTRY

MAIN

MOV R3,#0//R3 里面放个0

MOV R0,#1000 //R0 里面放1000,这个1000是当做地址用的。

MOV R4,#2000 //R2 里面放2000, 这个2000是当做地址用的。

LDR R1,[R0] //将地址1000存放的数放到R1里面。

CMP R1,#0 //R1 和 0作比较。

BLLT INVERSE //如果R1里面的数据大于0,则跳转到 INVERSE。小于0则继续执行下一条。

MOV R3,R1 //为小于0的分支,将R1放到R3里面。

STR R3,[R4] //将R3的值放到2000地址指向的空间。

BL ENDPLACE //程序结束。

INVERSE //大于0的分支。

SUB R3,R3,R1 // 0 减去R1,得到一个-R1,并存到R3里面。

STR R3,[R4] //将R3的值,放到地址2000指向的空间。

ENDPLACE BLENDPLACE //程序结束。

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11517462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存