gpt4 book ai didi

assembly - 优化比较指令数(PDP-11)

转载 作者:行者123 更新时间:2023-12-04 05:28:03 25 4
gpt4 key购买 nike

对于PDP-11,如何更改下面的汇编代码片段,使其仅是两条指令,但与这四个指令相同吗?

tst r0
blt label
cmp r0, #75
bgt label

最佳答案

我从来没有使用过PDP-11,但是我在x86系统上测试和分支工作的方式上有一些经验,这看起来可能很相似。

在x86指令集上,“ test”指令等效于与0的比较;如果值小于0,则设置“小于”标志,依此类推。我猜想#75表示十六进制的数字文字-0x75。

如果我的假设是正确的,那么您所拥有的代码将进行两次带符号的比较:


r0的(有符号)值是否小于0?
r0的(有符号)值是否大于0x75?


如果改为将其视为无符号值,则-假设PDP-11系统使用2的补码编码-负值将变为大于或等于0x8000的值(因为PDP-11是16位系统) 。因此,如果您进行无符号比较,则对照0x75进行检查也将解决负值问题。最小的可能值变为0,这对于此处的测试是可接受的。

我不确定PDP-11上的无符号比较是不同的比较操作码还是不同的标志,但是我确定您可以弄清楚那部分。 :-)

关于assembly - 优化比较指令数(PDP-11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2718988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com