cpu是如何知道所执行指令长度的?
cpu始终执行CS:IP所指向内存地址处的指令。指令的长短不一,有1个字节,2个字节,3个字节不等,cpu是如何判断当前指令长度(多少个字节)而不会混淆指令?望大神们指教! CPU,只需要知道起始地址,然后利用偏移来确定指令的大小的这样的好处是可以更加灵活的对内存进行索引哦{:5_91:} 这个是cpu硬件所解决的问题,作为汇编编程,不用管这些。cpu芯片中硬件会根据指令的第一个字节来确定是什么指令,这个指令占几个字节,处理这个指令需要几个周期,这些都是硬件设计中考虑的。软件编程不必考虑如何实现,只要知道占几个字节,需要几个处理周期就行。 实际上是在设计cpu芯片时,就要考虑设计什么样的指令,指令长度,执行时间,影响哪些寄存器,然后给每个指令一个二进制码,当执行到某个指令的第一个字节时(或者更多更细分)就识别出是什么指令了,芯片硬件做相应的动作。(芯片设计的路过,希望能帮到你) 8086CPU是经典古老的,我的理解是当CPU被设计出来时它所能执行的指令集就被固定了,CPU只能执行它所认识的指令,这样它能"知道"指令的长度就不足为奇了.
页:
[1]