AsmREPL 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
AsmREPL 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
AsmREPL 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Ruby
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具编译器
开源组织
地区 不详
投 递 者 白开水不加糖
适用人群 未知
收录时间 2021-12-03

软件简介

AsmREPL 是一个适用于 64 位 x86 汇编语言的 REPL,支持以最低级语言进行交互式编码。

用法:

安装 gem

$ gem install asmrepl

然后像这样启动 repl:

$ asmrepl

如果你是在macOS上,你需要用sudo启动rep。

当 REPL 启动时,它将显示所有寄存器值和标志:

================== CPU STATE ===================
rax  000000000000000000  r8   0x00007f89d0f04640
rbx  000000000000000000  r9   0x0000000000000004
rcx  0x00007f89d0f04a50  r10  000000000000000000
rdx  0x..fc611d3f0aa2900d4  r11  0x00000001033a4000
rdi  0x00007ff7bd126148  r12  000000000000000000
rsi  000000000000000000  r13  0x00007ff7bd125dc0
rbp  0x00007ff7bd125c40  r14  000000000000000000
rsp  0x00007ff7bd125c38  r15  000000000000000000

rip     0x00000001033a4001
rflags  0x0000000000000246
cs      0x000000000000002b
fs      000000000000000000
gs      000000000000000000

FLAGS: ["PF", "ZF", "IF"]

(rip 0x00000001033a4001)>

然后你可以发出命令并检查寄存器值。让我们写入 rax寄存器并检查它的值:

(rip 0x00000001033a4001)> mov rax, 5
=============== REGISTER CHANGES ===============
rax     000000000000000000 => 0x0000000000000005

(rip 0x00000001033a4009)> rax
0x0000000000000005
(rip 0x00000001033a4009)>

现在让我们写入rbx寄存器并将两个值相加:

(rip 0x00000001033a4009)> mov rbx, 3
=============== REGISTER CHANGES ===============
rbx     000000000000000000 => 0x0000000000000003

(rip 0x00000001033a4011)> add rax, rbx
=============== REGISTER CHANGES ===============
rax     0x0000000000000005 => 0x0000000000000008
rflags  0x0000000000000246 => 0x0000000000000202

FLAGS: ["IF"]

(rip 0x00000001033a4015)> rax
0x0000000000000008
(rip 0x00000001033a4015)> rbx
0x0000000000000003
(rip 0x00000001033a4015)>

最后,让我们检查 CPU 中的所有值:

(rip 0x00000001033a4015)> cpu
================== CPU STATE ===================
rax  0x0000000000000008  r8   0x00007f89d0f04640
rbx  0x0000000000000003  r9   0x0000000000000004
rcx  0x00007f89d0f04a50  r10  000000000000000000
rdx  0x..fc611d3f0aa2900d4  r11  0x00000001033a4000
rdi  0x00007ff7bd126148  r12  000000000000000000
rsi  000000000000000000  r13  0x00007ff7bd125dc0
rbp  0x00007ff7bd125c40  r14  000000000000000000
rsp  0x00007ff7bd125c38  r15  000000000000000000

rip     0x00000001033a4015
rflags  0x0000000000000202
cs      0x000000000000002b
fs      000000000000000000
gs      000000000000000000

FLAGS: ["IF"]

(rip 0x00000001033a4015)>
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
0 评论
0 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部