汇编语言,不了解指令代码和内存位置

时间:2016-12-15 06:03:16

标签: assembly digital-logic 68hc12

我正在我的数字设计课上学习考试,我不了解一些事情。以下是包含答案的工作表enter image description here

  1. 我了解每条指令的PC地址。我不明白的是在b,它说分支跳转到哪里,68hc12取指令后执行哪条指令。我看到080B 20 F8,但这究竟是什么意思,就像080B是指令所在的内存中的插槽但是后面的20 F8是什么意思?我也不太了解C部分的A,任何帮助都会很棒。

1 个答案:

答案 0 :(得分:4)

A)解释20 F8bra loop的原始机器代码,并且未显示其他说明。

显然你应该对机器代码格式有足够的了解,以确定分支的位置。

我不知道68HC12,但是根据其他ISA(如x86)的经验,我假设0x20是操作码而0xF8是带符号2的补码相对位移,可能相对于 end 分支指令。

哦,是的,为C部分写的解决方案证实了这一点。但是0x080D + 0xF8只有在从低字节到高字节没有进位时才有效。除非68hc12位移很奇怪或存在分段,否则你必须在添加之前对进行扩展签名,因此它是0x080D + 0xFFF8