以前糜老师教我们intel8086这套汇编,(我所知道的汇编还有一套叫at&t)书中说不可以mov [123h],[124h],就是说不能直接将内存地址为124内的数据复制到123中,至于为什么,书上没有解释,只是说,不可以,糜老师当时也没解释为什么,但却强调不可以。考试前我只能死记硬背。原来是这个原因:计算机的运算器通过内部总线和寄存器交换信息,什么是寄存器呢?我们都知道cpu由运算器和控制器组成,运算器我们可以理解为完成计算的模块,控制器我们可以理解为控制电路模块,而寄存器就是通过内部总线提供数据给运算器的数据存储器们。他们之间由于也可以通过内部总线相连,所以寄存器间也可以交换数据。而寄存器和内存通过一根数据总线相连 ,所以寄存器和内存之间也是可以直接数据交换的。而内存和内存之间根本就没有总线相连,想想如果真的造这样的总线会很复杂,因为内存动则几个g,如果让他们之间相互通信,简直太复杂了。所以汇编中内存间数据不可以直接交换的原因很简单,就是他们之间没有通信的总线。 |