Assembly 理解问题:汇编程序
我刚开始编写汇编代码,我正试图解决这个问题: 附加到程序代码中,并使用RAM寻址将数据从气缸组3移动到气缸组0。特别是将数据从R0气缸组3移动到R0气缸组0,从R1气缸组3移动到R1气缸组0 我不完全确定我将如何着手做这件事。 这是我目前掌握的代码:Assembly 理解问题:汇编程序,assembly,Assembly,我刚开始编写汇编代码,我正试图解决这个问题: 附加到程序代码中,并使用RAM寻址将数据从气缸组3移动到气缸组0。特别是将数据从R0气缸组3移动到R0气缸组0,从R1气缸组3移动到R1气缸组0 我不完全确定我将如何着手做这件事。 这是我目前掌握的代码: ;LN# [ADDR ] Source Code 1 [-----] $MOD51 ; This includes 8051 definitions for the Metalink assembler 2 [-----]
;LN# [ADDR ] Source Code
1 [-----] $MOD51 ; This includes 8051 definitions for the Metalink assembler
2 [-----]
3 [00000] Mov R0, #00H ; LOAD 00H to Register R0
4 [00002] Mov R1, #01H ; LOAD 01H to Register R1
5 [00004] Mov R2, #02H ; LOAD 02H to Register R2
6 [00006] Mov R3, #03H ; LOAD 03H to Register R3
7 [00008] Mov R4, #04H ; LOAD 04H to Register R4
8 [0000A] Mov R5, #05H ; LOAD 05H to Register R5
9 [0000C] Mov R6, #06H ; LOAD 06H to Register R6
10 [0000E] Mov R7, #07H ; LOAD 07H to Register R7
11 [00010] nop
12 [-----]
13 [-----]
14 [-----]
15 [00011] setb psw.3
16 [-----]
17 [00013] Mov R0, #10H ; LOAD 10H to Register R0
18 [00015] Mov R1, #11H ; LOAD 11H to Register R1
19 [00017] Mov R2, #12H ; LOAD 12H to Register R2
20 [00019] Mov R3, #13H ; LOAD 13H to Reigster R3
21 [0001B] Mov R4, #14H ; LOAD 14H to Register R4
22 [0001D] Mov R5, #15H ; LOAD 15H to Register R5
23 [0001F] Mov R6, #16H ; LOAD 16H to Register R6
24 [00021] Mov R7, #17H ; LOAD 17H to Register R7
25 [00023] nop
26 [-----]
27 [00024] setb psw.4
28 [-----]
29 [00026] Mov R0, #20H ; LOAD 20H to Register R0
30 [00028] Mov R1, #21H ; LOAD 21H to Register R1
31 [0002A] Mov R2, #22H ; LOAD 22H to Register R2
32 [0002C] Mov R3, #23H ; LOAD 23H to Register R3
33 [0002E] Mov R4, #24H ; LOAD 24H to Register R4
34 [00030] Mov R5, #25H ; LOAD 25H to Register R5
35 [00032] Mov R6, #26H ; LOAD 26H to Register R6
36 [00034] Mov R7, #27H ; LOAD 27H to Register R7
37 [00036] nop
38 [-----]
39 [00037] setb psw.5
40 [-----]
41 [00039] Mov R0, #30H ; LOAD 30H to Register R0
42 [0003B] Mov R1, #31H ; LOAD 31H to Register R1
43 [0003D] Mov R2, #32H ; LOAD 32H to Register R2
44 [0003F] Mov R3, #33H ; LOAD 33H to Register R3
45 [00041] Mov R4, #34H ; LOAD 34H to Register R4
46 [00043] Mov R5, #35H ; LOAD 35H to Register R5
47 [00045] Mov R6, #36H ; LOAD 36H to Register R6
48 [00047] Mov R7, #37H ; LOAD 37H to Register R7
49[00049]否 解释指令作用的注释通常是无用的。解释原因,或者省略它以减少混乱。始终假设阅读您代码的人知道指令集和语法,除非您正在做一些聪明或晦涩的事情(利用指令或其他很少使用的副作用)。你在这里的评论纯粹是杂乱无章。我不知道这是什么架构,但我不需要这些评论来告诉我这是一个立即进入寄存器的动作。我可以看到这些评论是如何造成不必要的混乱的。无论我最近被教做什么,都要添加评论。是的,你绝对应该总是评论你的asm。然而,您需要从指令所做的事情到使用该指令的原因以及它所实现的算法这一层面后退一步。或者该寄存器中当前存在哪个高级变量。并非每一行都需要自己的注释。在asm和任何其他语言中,除了源代码字面上所说的之外,没有添加任何信息的注释都是无用的,除非您正在教别人一门新语言。当你自己在学习一门新语言时,请抵制这样评论的诱惑。我理解,谢谢你的建议!这将对我未来的计划和项目非常有帮助。但是,回到问题上来,你有什么建议或帮助可以帮助我解决/理解这个问题吗?