【问题标题】:How do you set bytes directly with DASM?如何直接使用 DASM 设置字节?
【发布时间】:2012-06-04 00:52:47
【问题描述】:

我正在学习 6502 汇编语言,但无法解决问题。我一直在尝试JavaScript 6502 assembler/emulator,并注意到大多数示例都有一个如下所示的部分:

colors:
  dcb 0,0,0,0,0,$9,$9,1,1,0,0,0,0,0

我尝试在 Google 上搜索 dcb 的含义,我得到的最接近的是十进制编码的二进制文件。从源代码来看,汇编器似乎正在获取值并将每个值作为一个单独的字节插入到代码的当前位置。

我在本地使用 DASM 来组装我的代码,它不支持 dcb。 DASM 中是否有等效的方法可以像这样直接在代码中设置字节值?

【问题讨论】:

  • 如果您在发布答案后还没有发现dcb 代表什么,指令DC 代表Define Constant,B 代表字节。
  • 在各种汇编程序中其他常见的助记符是 .byt.db 用于数据字节(在这种情况下,.dw 通常适用于 16 位值,即数据字)。跨度>

标签: assembly 6502


【解决方案1】:

.DC 工作正常,但DASM 中的直接等效项是

colors:
    dc.b 0,0,0,0,0,$9,$9,1,1,0,0,0,0,0

正如 AusCBloke 所说,b 用于字节。您可以将其替换为 w 用于字(2 个字节)或 l 用于长字(4 个字节)。

您已经正确推测dc.x 的目的是在当前位置注入常量值。

【讨论】:

    【解决方案2】:

    嗯,通常情况下,提出问题可以帮助我找到答案。根据this page.DC 就是用于此目的。

    所以问题中的示例如下所示:

    colors:
      .DC 0,0,0,0,0,$9,$9,1,1,0,0,0,0,0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 2019-11-13
      • 2019-04-18
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      相关资源
      最近更新 更多