第十名directives/pseudops

DASM directives/pseudops

我正在查看文档,有一些伪操作让我难以接受,它们是 DVLISTXXX

DV 说是像 DC 但与 EQM 一起使用,我弄乱了它,但我没有注意到任何区别,我试图找到任何示例,但找不到任何示例。

LISTXXX,我也不确定它们是如何工作的。

DV

DV 做宏展开。最好用一个例子来证明这一点。

mymacro  eqm    10 + ..

mylist   dv     mymacro 1, 2, 3

第一行定义了一个将用作宏的符号mymacro。圆点 (..) 作为参数。

在第二行中,宏应用于列表中的每个表达式。从左到右:

  • 1 替换为 10 + 1
  • 2 替换为 10 + 2
  • 3 替换为 10 + 3

基本上,第二行相当于:

mylist   dc     10 + 1, 10 + 2, 10 + 3

这显然等同于:

mylist   dc     11, 12, 13

这个例子很简单;当宏包含符号时​​,DV 可能更有用。 例如:

mylabel  dc     "ABCD"
mymacro  eqm    mylabel + ..
mylist   dv     mymacro 1, 2, 3

相当于:

mylabel  dc     "ABCD"
mylist   dc     mylabel + 1, mylabel + 2, mylabel + 3

列表

LIST OFFLIST ON 影响写入列表文件的输出。 通常,源文件中的每一行都会写入列表文件;这被 LIST OFF 抑制了。不过,错误消息仍会写入列表文件。

显然,只有在命令行(选项 -l-L)中指定了列表文件时才有效。

XXX

据我所知,DASM 没有伪操作 XXX。 我猜你指的是 the documentation:

的这一部分
[label] XXX[.force] operand

XXX 只是一个占位符;它可以是您喜欢的任何助记符,例如 lda。 请参阅有关 FORCE 扩展的部分。