Helper function for rendering registers dump.
(self, regs: Mapping[str, int], diff_reg: Collection[str])
| 86 | return [k for k in curr if curr[k] != prev[k]] if prev else [] |
| 87 | |
| 88 | def render_regs_dump(self, regs: Mapping[str, int], diff_reg: Collection[str]) -> None: |
| 89 | """Helper function for rendering registers dump. |
| 90 | """ |
| 91 | |
| 92 | # find the length of the longest reg name to have all regs aligned in columns |
| 93 | longest = max(len(name) for name in regs) |
| 94 | |
| 95 | def __render_regs_line() -> Iterator[str]: |
| 96 | elements = [] |
| 97 | |
| 98 | for idx, (name, value) in enumerate(regs.items()): |
| 99 | line_color = f'{COLORS[idx // self.regs_a_row]}' |
| 100 | |
| 101 | if name in diff_reg: |
| 102 | line_color = f'{color.UNDERLINE}{color.BOLD}{line_color}' |
| 103 | |
| 104 | elements.append(f'{line_color}{name:{longest}s}: {value:#010x}{color.END}') |
| 105 | |
| 106 | if (idx + 1) % self.regs_a_row == 0: |
| 107 | yield '\t'.join(elements) |
| 108 | |
| 109 | elements.clear() |
| 110 | |
| 111 | for line in __render_regs_line(): |
| 112 | print(line) |
| 113 | |
| 114 | def render_flags(self, flags: Mapping[str, int], before: str = ''): |
| 115 | def __set(f: str) -> str: |