Assembly 汇编返回
我的代码的一小部分Assembly 汇编返回,assembly,return,Assembly,Return,我的代码的一小部分 swi r6,r0,LCD_ CONT addi r10,r0,6 firstdelay: addi r10,r10,-1 bnei r10,firstdelay swi r0,r0,LCD_ CONT addi r10,r0,30 seconddelay: addi r10,r10,-1 bnei r10,seconddelay swi r5,r0,LCD_DATA 在整个计划中,我不得不延迟多次,但我想保持小规模。我想写
swi r6,r0,LCD_ CONT
addi r10,r0,6
firstdelay:
addi r10,r10,-1
bnei r10,firstdelay
swi r0,r0,LCD_ CONT
addi r10,r0,30
seconddelay:
addi r10,r10,-1
bnei r10,seconddelay
swi r5,r0,LCD_DATA
在整个计划中,我不得不延迟多次,但我想保持小规模。我想写一些大致如下的内容:
swi r6,r0,LCD_ CONT
addi r10,r0,[delayamount]
bri Delay
swi r0,r0,LCD_ CONT
addi r10,r0,[newdelayamount]
bri Delay
Delay:
addi r10,r10,-1
bnei r10,Delay
[return to where I was previously in the code]
所以我的问题是:我如何回到我在代码中的位置,而不必创建多个延迟并直接运行代码。谢谢大家 也许这会有帮助:(注意“操作码
rtsd
然后被用来返回调用函数”)。也许这会有帮助:(注意“操作码rtsd
然后被用来返回调用函数”)。你能把延迟码作为一个子程序来编写,调用它来调用它吗,当您完成时,可以将延迟代码作为子例程编写,调用它来调用它,当您完成时可以“返回”吗?rtsd会将我回调到调用函数,但如何让它回调到当前函数的另一部分?我正在编写的程序集已经是一个从C函数调用的子程序,因此使用rtsd r15,8将把我拉回到校准函数。我建议您将延迟代码作为一个单独的函数,您可以使用brlid
从函数调用它(如标题为“调用函数”的部分所述),因此,当延迟代码返回时,它将返回到您的函数(调用它的函数)。rtsd会将我回调到调用函数,但如何让它回调到当前函数的另一部分?我正在编写的程序集已经是一个从C函数调用的子程序,因此使用rtsd r15,8将把我拉回到校准函数。我建议您将延迟代码作为一个单独的函数,您可以使用brlid
从函数调用它(如标题为“调用函数”的部分所述),因此,当延迟代码返回时,它将返回到调用它的函数。