請教,為什么8086的堆疊只能push兩個位元組?為什么堆疊必須兩個位元組兩個位元組的儲存?
push AX //可以
push AL //不可以
uj5u.com熱心網友回復:
暈死,學了幾十年還沒有注意到這個。不能當然是因為它是16位的CPU,push只能是按字長來,這是規定。至于規定的原因肯定是效率了
uj5u.com熱心網友回復:
謝謝回復。
效率應該是一個理由,雖然不知道為什么。
但暫存器可以分高低位,沒道理push不能,應該是故意設計成這樣吧,也許是成本考慮?
uj5u.com熱心網友回復:
可以去網上搜一些記憶體對齊方面的資料。
實際上這是一個空間和時間的問題,按樓主的想法,如果允許push al,那么我們訪問記憶體時是否也可以允許按位來操作呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266819.html
標籤:匯編語言
上一篇:堆的golang實作問題???
