blob: dda3ec23f34368df4582d021ac500e3c9ebd1607 [file] [log] [blame]
def AddTest(address):
print(f"{'0x%08x' % address} -> {'0x%08x' % (address + 4)}")
PrintInstructionData((address & 0xFFFFF000) | (0b0_0001 << 7) | 0b0110111)
def PrintInstructionData(data):
print("0x%08x" % data)
def main():
AddTest(0x0000_0000)
AddTest(0x1000_0000)
AddTest(0x1100_0000)
AddTest(0x1200_0000)
print("SRAM Commands:")
PrintInstructionData((0b0000_0000_0000 << 20) | (0b0_0001 << 15) | (0b010 << 12) | (0b0_0011 << 7) | 0b0000011)
PrintInstructionData((0b000_0000 << 25) | (0b0_0011 << 20) | (0b0_0001 << 15) | (0b010 << 12) | (0b0_0100 << 7) | 0b0100011)
print("Flash Commands:")
PrintInstructionData((0x0000_0000 & 0xFFFF_F000) | (0b0_0001 << 7) | 0b0110111)
PrintInstructionData((0x1400_0000 & 0xFFFF_F000) | (0b0_0010 << 7) | 0b0110111)
PrintInstructionData((0b0000_0000_0000 << 20) | (0b0_0010 << 15) | (0b010 << 12) | (0b0_0011 << 7) | 0b0000011)
PrintInstructionData((0b000_0000 << 25) | (0b0_0011 << 20) | (0b0_0001 << 15) | (0b010 << 12) | (0b0_0000 << 7) | 0b0100011)
print("Peripheral Commands:")
PrintInstructionData((0x1303_1004 & 0xFFFF_F000) | (0b0_0001 << 7) | 0b0110111)
PrintInstructionData((0x0000_4000 & 0xFFFF_F000) | (0b0_0011 << 7) | 0b0110111)
PrintInstructionData((0b000_0000 << 25) | (0b0_0011 << 20) | (0b0_0001 << 15) | (0b010 << 12) | (0b0_0100 << 7) | 0b0100011)
if __name__ == "__main__":
main()