【发布时间】:2020-11-28 09:16:41
【问题描述】:
到目前为止,我所研究的是,我们用汇编语言编写了一个程序……将这个程序传递给生成机器代码的汇编程序……将机器代码传递给 ROM 刻录机,该刻录机将其刻录到微控制器的 ROM 中
现在我的问题与 DB 之类的指令有关,用于定义数据字节。
该指令如何不生成任何机器代码?要在内存中放置一个字节,必须有一些代码......它不会神奇地发生
这个指令必须生成一些东西,然后告诉 ROM 刻录机这个数据字节将被放置在这个地址。
请帮助我很困惑
【问题讨论】:
-
"这个指令如何不生成任何机器码?要在内存中放置一个字节,必须有一些代码......它不能神奇地发生" --
db不生成机器码,除非您使用它指定的数据恰好是机器代码。像一条指令一样,db数据被写入输出文件。 -
db 不会在运行时生成写入内存的指令。而是将字节放入“指令流”中。程序在启动时(例如通过操作系统)加载到内存中。然后也会加载 db 数据。您可以将编码指令与 db 一起使用,或者确保永远不会执行使用 db 生成的数据,例如通过将数据放在程序末尾或在 db 之前放置跳转指令
标签: assembly embedded directive machine-code 8051