關於組合語言棧的理解

2021-08-13 19:26:28 字數 600 閱讀 8358

棧就是一段特殊記憶體,什麼是棧呢?舉個例子,乙個只有上面開啟的盒子,現在有三本書離散數學、c語言、組合語言,需要將這三本書一本一本的放進去,先將離散數學放進去,然後c語言,接著組合語言,現在又需要將三本書拿出去,只能先拿組合語言,再拿c語言接著再拿離散數學,棧就是這樣的特點,後進先出。

棧的大小怎麼確認呢?這是靠我們自己決定的,如何確定這段記憶體為棧,就需要兩個暫存器,段暫存器ss和存放偏移位址的暫存器sp,比如我們決定10000-1000f為暫存器那麼ss:sp 一開始應該為 1000:0010執行棧有兩個指令push,pop,push是入棧執行過程是先sp+2之後在把資料放進去,pop指令是先出棧,先將指令放進棧接著再sp-2,就好像把東西放進去房間一樣,需要先開門再把東西放進去,把東西拿出去,需要把東西拿出去再關門,東西就相當於需要操作的資料,開門和關門就相當於sp+2和sp-2。

棧最大為64kb,這和sp的定址能力有關,比如10000-1ffff為棧,那麼ss:sp一開始應該指向那裡呢?按照之前的演算法sp應該為ffff+1 = 10000但是sp只能儲存4個位元組所以sp = 0,當棧滿了之後sp還是為0,這個時候再次入棧0-2 = fffffffe,所以sp = fffe,之後再次入棧的話就會將原資料給覆蓋掉,所以要盡量避免這種情況。

組合語言的分支理解

組合語言是面向機器的程式語言,可以將其看成是各種 cpu 的機器指令的助記符集合。程式設計師可以使用彙編 直接控制硬體系統工作,而且用組合語言編寫的程式具備執行速度快和占用記憶體少等優點。這主要是因為 arm 採用的是 risc 架構,具備功耗低的優勢 ios 模擬器的程式實際就是以 ios 模擬器...

理解組合語言的作用

1.組合語言的大部分語句直接對應機器指令,執行速度快,效率高,體積小,在某些儲存器容量有限,但需要快速和實時響應的場合比較有用。3.組合語言可以用於軟體的加密和解密 計算機病毒的分析和防治,以及程式的除錯和錯誤分析等各個方面。4.通過學習組合語言,能夠加深對計算機原理和作業系統等課程的理解。通過學習...

關於組合語言入門

組合語言我終於入門了,不管怎樣,我覺得只要是自己能繼續自己學習下去就算把一門語言入門了。昨天微型計算機上機實驗的時候題目很有難度,我乙個也沒有做出來,很受打擊。作為乙個立志在明年進入中科院軟體所的人,我怎麼可以這樣子?這麼關鍵的課程,怎麼可以落下。我感到很內疚。然而,此刻我終於不內疚了。在網上搜尋到...