《組合語言》第三章 暫存器(記憶體訪問)

2021-08-17 03:23:14 字數 803 閱讀 5023

在記憶體單元中,位址高的是高位,位址低的是低位。

我們在讀取記憶體時喜歡從0開始讀,但我們在讀取數字的時候一定不喜歡從最低位開始讀,所以如果這個分不清,那麼是這個是相當「痛苦的」,所以,乙個資料如果確定是乙個字,那麼直接從高位開始讀取,這樣更好理解。

如果直接將記憶體單元送入暫存器中,那麼預設送入乙個字,即兩個記憶體單元。比如從低到高依次是「1,2」,

那麼,在ax中會把高位設為2,低位設為1。這個過程由相關硬體來完成,所以我們不必太多關注其內部的問題。

mov ax,[0]的結果就是al==[0],ah==[1],其數字表示的是[1][0]

作業系統為記憶體提供棧機制,注意,棧是一段空間,從高到低的記憶體位址順序來形成的,所以,當棧為空是,棧指標指向其最高位

所以,對於程式的閱讀,你應該習慣從高到低開始閱讀,比如0123h,這個資料進入棧,從高到低就是0123h,但如果你還開始從低往高的順序,那麼為 23 01,這個其實很彆扭的!!

當入棧是,sp是減少的,即往低位開始。 如果出棧,那麼向高位移動。

上面那些是偏移位址來決定的,這種操作,都預設以0000為邊界,可以讓你直觀的感受「棧的大小」,以免讓你出現其越界的操作。

系統並沒有為你的「越界行為」提供任何的安全機制,這一切都讓你自己把握好。

8086偏移位址為16位,所以,其最高能進行216

2

16的段內範圍定址,所以,其棧段的最大為64kb。一旦你明白這個,那麼其餘的就很好理解的。

組合語言 第三章暫存器 記憶體訪問

1 字單元 即存放乙個字元資料 16位 的記憶體單元,由兩個位址連續的記憶體單元組成,高位址單元中存放字型資料的高位位元組,低位址單元中存放字型資料的低位位元組.我們將起始位址為n的字單元,簡稱n位址字單元.比如乙個字單元由2,3兩個記憶體單元組成,則這個字單元的起始位址為2,我們可以說這是2位址字...

彙編 第三章 暫存器(記憶體訪問)

之前第二章講的重點是理解8086位址的組成方式,相關的暫存器以及6個命令的使用 r,d,a,e,t,u 第三章繼續從訪問記憶體的角度學習暫存器。3.1 記憶體中字的儲存 乙個字由兩個位元組組成,而乙個位元組佔乙個儲存單元,所以用16位暫存器來儲存乙個字 具體儲存採用小端法,乙個字單元由連續的兩個記憶...

第三章 暫存器(記憶體訪問)

cpu中,用16位暫存器來儲存乙個字,高8位存放高位位元組,低8位存放低位位元組。例如 資料20000 4e20 h 在記憶體中存放的方式為 低 20 h 棧頂 高 4e h 棧底 cpu要讀寫乙個記憶體的時候,必須先給出這個記憶體單元的位址,同樣是由段位址和偏移位址組成。這個是靠ds暫存器,它用來...