[英]Does mips have 32 bit addresses AND 32 bit instructions?
我知道32位MIPS指令和存储器寄存器是...很好的32位...,并且PC在指令寄存器中计算了该指令的地址。
我的问题是:32位地址是否附加到32位指令上?
忽略这些都是零的事实...
0x00000000(地址)是否与0x00000000(指令)串联?
例如,R-Type是
OP(6) RS(5) RT(5) RD(5) SHIFTAMMT(5) FUNCT(6)
=> 32 bit instruction
=> 000000_00000_00000_00000_00000_000000
上面的地址是000000_00000_00000_00000_00000_00000_000000
两个32位数字是否连接在一起,以便PC吐出与64位值的上半部分相对应的32位? 我经常看到有
Address Instruction
0x00000000 0x00000000
任何帮助,将不胜感激。
您经常看到的表显示了指令的地址和指令本身。 在内存中,每个字(字节)都有一个永远不变的地址。 地址(处理器使用的位置)和指令(存储在该位置的内容)是独立的。
根据您的要求,指令集固定长度不变。
对于某些指令,地址包含在寄存器中,只需要32位指令中的几个位即可定义该寄存器。
如果未将寄存器用作地址源,则指令中的百分比位通常包含偏移量,因为所有指令均为32位,所以偏移量最有可能以指令单位而不是字节为单位,不会浪费那些地址两位。 我不记得mips是否具有任何其他编码,如果有,那么它只能是地址的一小部分。
基于该编码,必须保留指令的某些百分比的位以定义该指令,其余位定义该指令的参数。 这些指令编码的来源很多,特别是mips网站。
(32位固定长度规则是一个例外,它们具有16位指令集,但这不会改变地址的编码方式,mip不会像x86或其他cisc那样可变长度,在xic或其他cisc中,您将许多字节作为参数添加)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.