1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/usr/bin/env python
"""
Decode 64-bit address into components
"""
import sys
def main():
if len(sys.argv) != 2 or not sys.argv[1].startswith('0x'):
print("%s 0x..." % sys.argv[0])
sys.exit(1)
address = int(sys.argv[1],16)
offset = address & 0xfff
ptl3 = (address >> 12) & 0x1ff
ptl2 = (address >> 21) & 0x1ff
ptl1 = (address >> 30) & 0x1ff
ptl0 = (address >> 39) & 0x1ff
print("Ptl0: %3d" % ptl0)
print("Ptl1: %3d" % ptl1)
print("Ptl2: %3d" % ptl2)
print("Ptl3: %3d" % ptl3)
print("Offset: 0x%x" % offset)
if __name__ == '__main__':
main()
|