从数据存储器到寄存器
From data memory to registers
有没有办法增加 8051 架构中的内存?
例如:
内存插槽:
mov 0x71, #0x01
mov 0x72, #0x02
mov 0x73, #0x03
有没有办法在for循环中说
mov 0x71, A
do something;
mov 0x72, A
do something;
在 for 循环中?
在 java 中,您只需执行简单的 for(int i = 0; i < variable; i++)
但我不知道如何在 8051 体系结构中执行此操作。
当然,有多种方法可以做到这一点。根据周围的代码,我可能会使用 DJNZ or CJNE 指令。
;Load your control variable into B. From a table, GPIO, etc.
MOV B,#3H
;Build your loop. This is basically a Do While loop.
;int i=0, (really a byte since 8 is 8-bit)
CLR A
;Start of the loop, notice this is AFTER the CLR op
FN_LOOP:
;Do something...
;i++
INC A
;i < variable. Stops when A == B
CJNE A,B,FN_LOOP
;Rest of your code
我建议您也阅读汇编中的寻址模式。这些知识对于阅读汇编指令集文档至关重要。
有没有办法增加 8051 架构中的内存?
例如:
内存插槽:
mov 0x71, #0x01
mov 0x72, #0x02
mov 0x73, #0x03
有没有办法在for循环中说
mov 0x71, A
do something;
mov 0x72, A
do something;
在 for 循环中?
在 java 中,您只需执行简单的 for(int i = 0; i < variable; i++)
但我不知道如何在 8051 体系结构中执行此操作。
当然,有多种方法可以做到这一点。根据周围的代码,我可能会使用 DJNZ or CJNE 指令。
;Load your control variable into B. From a table, GPIO, etc.
MOV B,#3H
;Build your loop. This is basically a Do While loop.
;int i=0, (really a byte since 8 is 8-bit)
CLR A
;Start of the loop, notice this is AFTER the CLR op
FN_LOOP:
;Do something...
;i++
INC A
;i < variable. Stops when A == B
CJNE A,B,FN_LOOP
;Rest of your code
我建议您也阅读汇编中的寻址模式。这些知识对于阅读汇编指令集文档至关重要。