我決定學習彙編程序設計語言。我正在使用this。在底部行使它找到一些指令錯誤,其中之一就是MASM大會將8位寄存器移動到16位寄存器(即mov cx,ch)
mov cx, ch
我發現了一些類似的問題對SO有關這個主題的解釋如何實現呢,但現在我想知道爲什麼這個操作是被禁止的?
我們假設我在CH中有10d = 00001010b,並且想把它放到CL並同時擦除CH。 mov cx, ch
似乎這樣做,因爲它顯示了10D的16位00000000 00001010,並將其分別CH和CL(整個CX)
有什麼不妥之處,爲什麼給教程問找到這種表達錯誤?
這與其說是被禁止的,更多「不在[所有英特爾操作碼的完整列表](http://www.intel。nl/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2a-manual.pdf)(鏈接到PDF)「。禁止因爲操作碼不存在 – usr2564301
我高度懷疑您的困惑之處在於作者爲此問題(可能故意)選擇了「CH」,「CL」和「CX」寄存器。爲了幫助你理解這種不連續性,你可以用'mov dx,ch'得到一個非常類似的錯誤,這可能會更好地說明錯誤的原因,只是一個建議;如果不滿意就退款 –