6
假設x是一個其值不知道的寄存器。 我必須做x=2a+3b
其中a
和b
有未知的值。如何使x = 2a + 3b在4條指令中僅限使用mov,add,sub,neg?
我只能使用8086 asm指令mov
,add
,sub
,neg
。 不允許使用mul
指令,也僅限於4條指令。
它甚至有可能?
假設x是一個其值不知道的寄存器。 我必須做x=2a+3b
其中a
和b
有未知的值。如何使x = 2a + 3b在4條指令中僅限使用mov,add,sub,neg?
我只能使用8086 asm指令mov
,add
,sub
,neg
。 不允許使用mul
指令,也僅限於4條指令。
它甚至有可能?
重寫你的表達:
2a + 3b = 2(a + b) + b = (a + b) + (a + b) + b
請注意,您只需要計算的(a + b)
值一次。
嘿,那是天才! – Earlz
只是作爲參考,這是常見的子表達式消除與代數還原相結合(還原之後的CSE),只是說明OP想要做進一步的研究。 – Necrolis
謝謝,現在我明白了。 – Lior