如何仅使用 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
a
和 b
有未知值。
我只能使用 8086 asm 指令 mov
、add
、sub
、neg
。
不允许使用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)