将寄存器值读入变量 - 例如控制电脑位置
read register value into variable - e.g. control location of pc
目的是检查我的控制器是否停在了正确的位置。
我正在使用 tcl 脚本。
命令 reg pc
将寄存器 pc
的值输出到控制台。所以理论上下面的命令应该在变量中存储一些东西。
set x [ reg pc ]
但是结果变量x
仍然是空的。
如何检索寄存器的值并将其存储到变量中?
你需要的是exec
命令:
set x [exec reg pc]
exec
命令执行reg pc
命令和returns输出。
有点棘手。 reg pc
没有 return 任何东西...为什么还要呢?^^ 会很有用 -.-
然而,这件作品的功劳归功于 mailinglist!
set real_pc [lindex [ocd_reg pc] 2]
# following executed returns the pc at (here) 0x1FC
ocd_reg pc
# returns: "pc (/32): 0x000001FC "
# Now I can check for my pc in tcl =)!
if { $expected_pc == $real_pc } { \
echo "reg pc is correct! at $real_pc"
}
在我看来,字符串被分成了 3 个块。采取的是块 2,计数从 0 开始。在 tcl 中,一切都是字符串。所以这有效!
目的是检查我的控制器是否停在了正确的位置。
我正在使用 tcl 脚本。
命令 reg pc
将寄存器 pc
的值输出到控制台。所以理论上下面的命令应该在变量中存储一些东西。
set x [ reg pc ]
但是结果变量x
仍然是空的。
如何检索寄存器的值并将其存储到变量中?
你需要的是exec
命令:
set x [exec reg pc]
exec
命令执行reg pc
命令和returns输出。
有点棘手。 reg pc
没有 return 任何东西...为什么还要呢?^^ 会很有用 -.-
然而,这件作品的功劳归功于 mailinglist!
set real_pc [lindex [ocd_reg pc] 2]
# following executed returns the pc at (here) 0x1FC
ocd_reg pc
# returns: "pc (/32): 0x000001FC "
# Now I can check for my pc in tcl =)!
if { $expected_pc == $real_pc } { \
echo "reg pc is correct! at $real_pc"
}
在我看来,字符串被分成了 3 个块。采取的是块 2,计数从 0 开始。在 tcl 中,一切都是字符串。所以这有效!