在阅读MIPS架构手册时,只有lbu
/ lhu
指令。但我们没有sbu
/ shu
指令。
正如我发现有一个已签名的加载扩展,但它仍然可以解释实际的存储行为。
CPU如何在存储操作期间区分未签名和签名的数据?是否有任何其他标志或机制来指示地址准确存储的数据?
答案 0 :(得分:3)
存储无符号数据与有符号数据没有什么特别之处 - 它们只是CPU写入内存的位。您有单独的有符号和无符号加载的原因是,对于小于寄存器宽度的加载,可以方便地对有符号值进行自动符号扩展,其中寄存器的高位部分用{{1}填充s表示正值,0
表示负值。然而,无符号负载只会填充寄存器的高位部分1
s,因为当然没有隐式符号。