LOOP LDRB R4R0#1 CMP R4#0 BEQ OVER STRB R4R1#1 B LOOPOVER MOV PCLR END解释这段具体含义
这段代码是一个基本的循环结构,它的作用是将R0指向的地址中的数据一个一个地取出来,并依次存储到R1指向的地址中,直到遇到值为0的数据为止。
具体的解释如下:
-
LDRB R4,[R0],#1:从R0指向的地址中取出一个字节的数据,并将指针R0自动加1,指向下一个字节。
-
CMP R4,#0:将取出的数据与0进行比较。
-
BEQ OVER:如果取出的数据等于0,跳转到OVER标签处执行。
-
STRB R4,[R1],#1:将取出的数据存储到R1指向的地址中,并将指针R1自动加1,指向下一个地址。
-
B LOOP:跳转回LOOP标签处,继续执行循环。
-
OVER:执行完循环后,跳转到OVER标签处,结束程序。
-
MOV PC,LR:将程序计数器(PC)的值赋值为链接寄存器(LR)的值,即跳回到调用该函数的程序继续执行。
原文地址: https://www.cveoy.top/t/topic/cSum 著作权归作者所有。请勿转载和采集!