在我对计算机类的介绍中,我们为MC68332微控制器编写了一个汇编程序。我知道这个微控制器是32位的,因为我在数据表中读到了它。我想知道是否有办法通过查看汇编asm源代码时生成的LST文件来确定这一点。
答案 0 :(得分:1)
这些行中的第一个数字显然是地址;组装的第二个(和第三个)实际操作码。最后两个有两个16位字的原因是args $ 01和$ 02。 CLR.L是一个很好的提示,它是一个32位处理器:“clear longword”。
答案 1 :(得分:0)
一般情况下,您不能仅从装配说明或列表中说出来。如果你需要查找助记符,你将找到有关该指令的所有内容,它将告诉你将涉及多少位。但即便如此,这可能还不够,因为我可以编写一系列指令或只能使用64位寄存器中最低1/4的IBM System z大型机,或处理存储中的单个字节,而您从代码中无法分辨出16个通用寄存器是64位的。或者古老的霍尼韦尔6000系列代码,根据控制寄存器中的标志位,可以在寄存器中使用6个6位字符或4个9位字符。
这样就可以找到最佳方法 - 阅读规格表,操作原理或类似指南,并学习说明。你学的越多,你就意识到使用汇编代码就越有趣。
答案 2 :(得分:-1)
第一列是指令的地址,第二列是要执行的操作,也就是操作码或指令,最后一个字段是翻译成人类可读形式的指令,通常称为汇编。
在这个处理器上,操作码通常消耗16位(2字节)的倍数,这就是你只看到偶数地址的原因。尽管如此,它还是一个32位处理器,这主要是因为它的地址空间为2 ^ 32。这就是你看到8位宽地址的原因,每个数字编码4位。
你可以猜测它是一个32位处理器,来自某些指令的.L
后缀,它是“long”的缩写,通常是32位,所以这个处理器还具有处理32位宽的能力指令。