2011-10-09 44 views
0

我試圖寫出數組中每個整數的值以十進制形式。我使用預製功能來完成轉換,但它要求數據填充零以正確輸出。從數組中複製值時可以使用movzx或類似的東西嗎? 我試過用這個: movzx eax, intArray[esi] 但我無法讓它工作。movzx與程序集中的數組

任何幫助非常感謝,謝謝。

回答

0

您需要告訴彙編器它從什麼尺寸擴展而來。由於該寄存器,它知道目標是32位,但它不知道源有多大。字節的實施例假設源尺寸:

movzx eax, byte intArray[esi] 
+0

沒關係,它是一個DWORD陣列和我嘗試使用: 'MOVZX EAX,字節intArray [ESI]' 但不能得到它組裝。 – xboxmods

+2

如果您正在從dword移動到dword,則不需要填充,因爲源已經與目標大小相同。你可以使用'mov'。 – ughoavgfhw

+0

好吧,好吧。如果是這樣的話,我不知道爲什麼這些數字都出錯了。我想這至少縮小了一些東西。謝謝。 – xboxmods