【发布时间】:2014-05-12 17:05:23
【问题描述】:
我正在努力熟悉汇编程序中的编程。一开始我选择了随机代码并尝试更新它。我还阅读了一些关于循环展开的内容,但我真的不知道从哪里开始。
这是我已经修改了一点的代码:
0000: 4401000C | | ADDI R0, 0x000C, R1
0004: 00000000 | | NOP
0008: 00000000 | | NOP
000C: 0C220000 | loop | LDW R2, 0x0000(R1)
0010: 00000000 | | NOP
0014: 00000000 | | NOP
0018: 1C411000 | | ADD R2, R1, R2
001C: 00000000 | | NOP
0020: 00000000 | | NOP
0024: 4C420004 | | MULI R2, 0x0004, R2
0028: 00000000 | | NOP
002C: 00000000 | | NOP
0030: 18220040 | | STW R2, 0x0040(R1)
0034: 48210008 | | SUBI R1, 0x0008, R1
0038: 00000000 | | NOP
003C: 00000000 | | NOP
0040: 0C230004 | | LDW R3, 0x0004(R1)
0044: 00000000 | | NOP
0048: 00000000 | | NOP
004C: 18230044 | | STW R3, 0x0044(R1)
0050: 7C01FFB8 | | BRGE R1, loop
0054: 00000000 | | NOP
0058: 00000000 | | NOP
005C: 7000FFFC | halt | BRZ R0, halt
0060: 00000000 | | NOP
0064: 00000000 | | NOP
【问题讨论】:
-
你可能想问一个实际的问题,这里很习惯
-
NOP 太多了...
-
我想我知道如何使用循环展开,但我仍然不知道如何改进代码
-
“NOP 太多了...... – twalberg”。我也想知道。这些人不应该有床。 AVR 的流水线并没有那么繁重。
-
那么为什么是所有的 NOP?有时它们用于对齐。但你到达那里的次数太多了。