add litte-endian to instructions load and store

main
benkangpeng 6 months ago
parent 4dcc3b8893
commit b1f540c77c

@ -69,7 +69,8 @@ class instruction:
@staticmethod
def Load(ins : list , immediate: bool = False) -> None:
regfile.write(ins[1] , mem.read(ins[2]))
mem_val : np.int32 = mem.read(ins[2]) + mem.read(ins[2] + 1) << 8 + mem.read(ins[2] + 2) << 16 + mem.read(ins[2] + 3) << 24
regfile.write(ins[1] , mem_val)
@staticmethod
def Loadi(ins : list):#load immediate to register , just for test , style of instruction : Loadi r1 , i100
@ -77,7 +78,11 @@ class instruction:
@staticmethod
def Store(ins : list) -> None:
mem.write(ins[2] , regfile.read(ins[1] , 0)[0])#just use one read port of regfile
reg_val : np.int32 = regfile.read(ins[1] , 0)[0]#just use one read port of regfile
mem.write(ins[2] , np.int8(reg_val & 0xff))
mem.write(ins[2] + 1 , np.int8((reg_val >> 8) & 0xff))
mem.write(ins[2] + 2 , np.int8((reg_val >> 16) & 0xff))
mem.write(ins[2] + 3 , np.int8((reg_val >> 24) & 0xff))
@staticmethod
def Add(ins : list) -> None:

Loading…
Cancel
Save