68000 汇编/标签
外观
< 68000 汇编
标签只是行的名称。您可以拥有任意数量的标签。通常,您只需要在少数地方引用它们,例如函数的起始点、循环的开始和结束以及某些数据存储位置。
汇编器将标签视为数字的别名。当它遇到一个标签时,它会将当前的 PC 值分配给它。(我将称之为“声明”标签。)然后,该标签可以在任何使用数字的地方用作操作数。它们通常用于 Jcc 或 Bcc 指令。
请注意,您可以在标签实际声明之前引用它们。这被称为 *向前引用*,具体处理方式取决于汇编器。通常,它只是使用一个已知的安全值(如当前 PC),标记该位置,并在第二次遍历时替换实际值。这可能会改变标签的大小,在这种情况下需要进行第三次遍历,依此类推。一些汇编器要求您显式定义跳转/分支的大小,以避免进行第三次遍历。您使用的汇编器可能具有不同的行为。
标签和存储空间
MYDATA: ds.b 16 ; Declare 16 bytes of space, MYDATA label refers to this location. global Main ; Inform assembler that the Main label should be exported (made visible to code not in this file) Main: ; Label for the main function MOVEA.L #MYDATA, A0 ; Set address register A0 to refer to MYDATA space MOVE.B #0, 0(A0) ; Copy 0 into the first byte of MYDATA MOVE.B #1, 1(A0) ; Copy 1 into the second byte of MYDATA rts ; Return