装配指令后,机器在x86 CPU中循环

时间:2017-01-12 23:22:41

标签: assembly cpu cpu-architecture cpu-registers

理论上我有Intel 8086,我想运行这个指令:

add [2000], 6 (or in AT&T syntax: addw $6, 2000)

我也知道:

  • 在2000的值是2
  • at 3000是注册CS
  • at 6000是注册DS
  • 在1000处是注册IP

现在我想在这个CPU中描述机器周期:fetch&执行。

我知道它在理论上看起来如何:

取:

  • 从内存中取指令
  • 解码指令以确定操作
  • 如有必要,从内存中获取数据

执行:

  • 对数据执行操作
  • 如果需要,将结果存储在内存中

但我不知道真实CPU寄存器和汇编代码的外观。你能解释一下吗?

1 个答案:

答案 0 :(得分:2)

记忆或寄存器中的值并不重要。当

        add     word ptr ds:[02000h],00006h
执行

,cpu从位置2000读取16位值2到内部(未命名)寄存器,向2添加6,并将16位值8存储并存储到位置2000(小端格式)。至少有两个网站将此显示为23个周期(17个用于指令+ 6个用于有效寻址)。