我已經創建的變量:彙編語言 - 乘
Y sword 8
Z sword 20
T sword 68
B sword ?
而且我必須評估以下,B = 4T - (8 + Z)+ Y
我真的不熟悉如何做這個。有人能幫我理解嗎?
我已經創建的變量:彙編語言 - 乘
Y sword 8
Z sword 20
T sword 68
B sword ?
而且我必須評估以下,B = 4T - (8 + Z)+ Y
我真的不熟悉如何做這個。有人能幫我理解嗎?
假設劍簽署的16位數字:
movsx eax,sword ptr T
movsx ebx,sword ptr Y
shl eax,2 ; faster than imul
movsx edx,sword Z
add eax,ebx
add edx,8
sub eax,edx
mov sword ptr B,ax
然後優化了一點:
movsx eax,sword ptr T
movsx ebx,sword ptr Y
movsx edx,sword Z
lea eax,[ebx+eax*4] ; less code than shr
add edx,8
sub eax,edx
mov sword ptr B,ax
我真的不明白你做了什麼。我是彙編語言新手,剛開始學習它。我給了一個任務來做這些計算: A = Z-Y + T B = 4T-(8 + Z)+ Y C1 = 4(T-8)+ Z + Y D = mod(T ,8) E = Y^2 + Z –
@SameerAnand:堆棧溢出不是開始學習的好地方。 – Artur
我將您在問題中給出的表達式轉換成x86彙編指令,編譯器會在編譯時生成(差)編譯器。 Visual C++可以爲您生成彙編程序,但如果這是您的第一次嘗試,您應該先閱讀彙編語言。 –
一個簡單的方法來做到這一點的同時仍然學習大會的重要概念是用C/C++編寫程序並讓你的編譯器輸出程序集。從那裏,研究語法,看看它是否有任何意義。這實際上是我學習x86彙編的方式...
你在寫什麼CPU代碼? –
我不確定你的意思。我只是試圖在使用Visual Studio的32位計算機上執行此操作。 –
然後你最有可能瞄準x86。 –