如何仅使用 mov、add、sub、neg 在 4 条指令中限制 x=2a+3b? [关闭]

Posted

技术标签:

【中文标题】如何仅使用 mov、add、sub、neg 在 4 条指令中限制 x=2a+3b? [关闭]【英文标题】:How to make x=2a+3b in 4 instructions limit using ONLY mov,add,sub,neg? [closed] 【发布时间】:2012-10-03 20:27:24 【问题描述】:

假设 x 是一个其值未知的寄存器。 我必须让x=2a+3b ab 有未知值。

我只能使用 8086 asm 指令 movaddsubneg。 不允许使用mul指令,并且指令限制为4条。

有可能吗?

【问题讨论】:

【参考方案1】:

重写你的表达式:

2a + 3b = 2(a + b) + b = (a + b) + (a + b) + b

请注意,您只需计算一次(a + b) 的值。

【讨论】:

仅供参考,这是常见的子表达式消除结合代数归约(归约后跟 CSE),以防 OP 想要做进一步的研究。 谢谢,现在我明白了。

以上是关于如何仅使用 mov、add、sub、neg 在 4 条指令中限制 x=2a+3b? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

汇编指令学习(ADD,SUB,MUL,DIV,XADD,INC,DEC,NEG)

(32位汇编 五)mov/add/sub/and/or/xor/not

基础汇编指令

第三章总结

ARM MOV PC加8

关于ARM PC值