我必須寫程序(用於SIC和SIC/XE機)乘法兩個數的不使用MUL指令
我嘗試通過使用執行相同的操作,指定的操作數相乘的SHL運算到寫兩個。向左移兩位,將操作數乘以四。左移三位將操作數乘以八。一般來說,將一個操作數轉換到左邊的n位乘以2n。任何值可以乘以一些常數,使用一系列的移位和相加或移位和減法。例如,要將ax寄存器乘以十,只需要乘以八,然後再加兩倍原始值。也就是說,10 * ax = 8 * ax + 2 * ax。做到這一點的代碼是
shl ax, 1 ;Multiply AX by two
mov bx, ax ;Save 2*AX for later
shl ax, 1 ;Multiply AX by four
shl ax, 1 ;Multiply AX by eight
add ax, bx ;Add in 2*AX to get 10*AX
現在我怎麼能寫一個程序(SIC和SIC/EX機)? 你能請別人幫我嗎?
這是x86代碼,但邏輯是有效的。那麼,你卡在哪裏? – Jester
有人可能會回答你,但這不是真正的問題。要獲得實際幫助,您應該嘗試自己寫,然後在遇到問題時發帖。這不是一個語言教學網站,也不是「爲我寫這個代碼」網站。 –