例如,如果我有8085微处理器。
以下是说明。
MVI A, 52H : Store 32H in the accumulator
STA 4000H : Copy accumulator contents at address 4000H
HLT : Terminate program execution
微处理器如何理解MVI,STA,HLT。
如果我是正确的,HLT有76作为操作码。在这种情况下,微处理器如何将76识别为指令而不是数据。
任何人都可以帮助我不知道这个处理是如何运作的。
答案 0 :(得分:2)
这取决于处理器。一些具有固定长度的指令,在这种情况下,指令字节在每个< n>处。位置,而一些具有可变长度指令,因此哪些字/字节是操作码,哪些是参数取决于之前的内容。为了进一步使这一点复杂化,一些处理器具有必须对齐或填充到某些地址的某些指令。让人惊讶。
8085具有可变长度指令。因此,您必须从PC开始并根据其长度解释每条指令,以了解下一步开始的位置,以及哪些字节是数据/参数而不是操作码。
答案 1 :(得分:1)
值76可以代表任何东西,它取决于它的解释方式。
对于微处理器,有一个特殊的寄存器,它包含下一条要执行的指令的存储器地址。然后加载该数据并将其解释为执行指令。如果下一条指令的地址包含值76,则将其解释为HLT(在您的情况下)。显然,不同的处理器可能会将76解释为不同的指令。
另一方面,如果来自该地址的数据被解释为数值,那么它只是意味着76.
答案 2 :(得分:1)
只是当处理器发现76作为正在执行的程序的一部分时,即它的程序计数器"指向76所在的内存中的位置,它会将其解释为指令。
如果处理程序被其程序告知要从存储器中的其他位置加载相同的76,甚至从内存中的相同位置加载到寄存器中并将其用于计算,作为数据插入。
这就是所谓的Von Neumann architecture,其中程序和数据存储在同一个计算机内存中。它看起来都一样,但处理器被其程序告知哪些内容将被视为数据。