(三)我學(xué)匯編的那幾年-棧篇

此篇文章是對應(yīng)8086系統(tǒng)蛤育,有出入請自查。

棧-stack 通過字義就可以感覺出來,這玩意就像客棧一樣恒界。是臨時儲存和交換數(shù)據(jù)
用的桨啃。

介紹內(nèi)存

談輪棧之前车胡。咱們還得先熟悉一個東東。
它就是內(nèi)存照瘾。
毋容置疑匈棘。這貨就是咱們常說的內(nèi)存(Ram)。

每一塊內(nèi)存的位置都是對應(yīng)一個內(nèi)存地址析命。
一般這個地址都是用16進(jìn)制來表達(dá)的主卫。
0x400H 這就是一個內(nèi)存地址
每一個內(nèi)存儲存兩個bit(01)
1字 = 8字節(jié) = 16bit

內(nèi)存就好比是一段路。這個路上用很多電線桿鹃愤。
每個電線桿就是一個內(nèi)存地址簇搅。我們要取出這個電線桿附近的數(shù)據(jù)。
就需要把地址指向這里软吐。

現(xiàn)在說說地址瘩将。

一般地址都是采用方式:段地址 * 16 + 偏移地址
雖然現(xiàn)在的cpu已經(jīng)不是16位。但是偏移地址這個還是尋址使用的手段凹耙。

咱們說說短地址為什么乘以16鸟蟹。

比如咱們小區(qū)。用一棟樓號牌 是200.使兔。
這時候有個人來找這棟樓建钥。但是他每次是能發(fā)出兩個字。
要不是20 虐沥,要不是00熊经。咱們要告訴保安找那棟樓怎么辦呢。
接下來就是見證奇跡的時刻
乘法:咱們先說20 然后 說x欲险,然后說10镐依。
20 x 10 = 200.

雖然這樣說不夠確切。但是可以更好的解釋天试。

8086的cpu只有16根信號線槐壳。所以每次只能發(fā)送16位。超過這個就會被過濾掉多余的信號喜每。

如果咱們?nèi)?7位的數(shù)據(jù)务唐。這個17就會丟失掉雳攘。

聰明的大神就領(lǐng)悟到了這個神圣的乘法。
雖然咱們的cpu已經(jīng)64位了枫笛。
但是這個老傳統(tǒng)并沒有取締吨灭。這個方式也可以更好的保護(hù)數(shù)據(jù)。不被直接查看的刑巧。

咱們再來聊一聊偏移地址:

還是那個小區(qū)喧兄。
還是那位只能發(fā)兩個字的先生。他這次來要找202啊楚。
這次怎么辦呢:
他需要這么做:
先說20 然后 x 吠冤,然后 10 ,然后 + 恭理,然后02咨演。
20 x 10 + 2 = 202
這個200就是咱們的物理地址。

咱們cpu尋找數(shù)據(jù)并不是直接修改物理地址蚯斯。
他每次修改的事偏移地址薄风。也就是大家常說的ip(這個不是互聯(lián)網(wǎng)的那個撒)

他要找205偏移地址就是5。
這個是cpu來自動計算的拍嵌。咱們了解就好遭赂。不用太刻意。

通過以上解釋横辆。得到的結(jié)論就是儲存4個bit就需要兩個內(nèi)存地址撇他。
接下來咱們來看棧的指令。

push 入棧 : 添加數(shù)據(jù)
pop 出棧 : 取出數(shù)據(jù)

棧的儲存方式是先入后出狈蚤,先存進(jìn)去的最后出來困肩。

說到取數(shù)據(jù)。咱們肯定要想到一個就是寄存器脆侮。
ss寄存器就是表達(dá)咱們的棧的
sp就是咱們的棧頂锌畸。指到哪里就在哪里開始儲存數(shù)據(jù)。

既然起了個棧這么吊炸天的名字靖避√对妫肯定不能和其他寄存器一樣。

他的儲存方式就是不同幻捏。他是從高地址往低地址儲存的盆犁。

寄存器介紹

普通的寄存器都是從低到高的。
咱們舉個例子吧:
還是那個小區(qū)篡九,它的名字叫做棧谐岁。
它有十棟樓房。
1,2伊佃,3 ····窜司,9,10
有人買房子。這個銷售只能從第十棟開始出售锭魔。
然后出售第九棟例证。
這個就是push操作路呜。
反之迷捧。如果有人想出售房子。
就得從第一棟開始胀葱。你不能插隊漠秋。先買的最后才能賣。
這個就是pop操作抵屿。

接下來來一段代碼:
      mov ax,1000H; 賦值給ax寄存器
      
      mov ss,ax ;指定ss棧寄存器地址
      
      mov ax,1006H ; 賦值給ax寄存器
      
      mov sp,ax ;開辟一個棧庆锦。空間地址為1000 - 1006
      
      mov ax,8888H; 賦值是ax寄存器
      push ax  ;賦值給棧
      pop bx ;取出第一個值賦值給bx
最后說明

mov是賦值指令轧葛。
在匯編里面不可以直接給寄存器指定地址搂抒。
必須通過給段內(nèi)存賦值然后執(zhí)行此地址即可。
ss地址可以理解為結(jié)束地址尿扯。因為棧是從高往低儲存求晶。如果你這個地址
高于sp地址(棧頂)內(nèi)存就會出現(xiàn)泄漏。這個比較危險衷笋。

通俗來講:

起始地址(ss) - 結(jié)束地址(sp)
但是sp是移動的芳杏。每增加數(shù)據(jù)就會移動一次。
超過sp或低于ss都會內(nèi)存泄漏辟宗。
再強(qiáng)調(diào)一下:棧是從高往低儲存爵赵。
有哪里不足的地方希望補(bǔ)充下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泊脐,一起剝皮案震驚了整個濱河市空幻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌容客,老刑警劉巖氛悬,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異耘柱,居然都是意外死亡如捅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門调煎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镜遣,“玉大人,你說我怎么就攤上這事”兀” “怎么了谎僻?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長寓辱。 經(jīng)常有香客問我艘绍,道長,這世上最難降的妖魔是什么秫筏? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任诱鞠,我火速辦了婚禮,結(jié)果婚禮上这敬,老公的妹妹穿的比我還像新娘航夺。我一直安慰自己,他們只是感情好崔涂,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布阳掐。 她就那樣靜靜地躺著,像睡著了一般冷蚂。 火紅的嫁衣襯著肌膚如雪缭保。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天蝙茶,我揣著相機(jī)與錄音艺骂,去河邊找鬼。 笑死尸闸,一個胖子當(dāng)著我的面吹牛彻亲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吮廉,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼苞尝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宦芦?” 一聲冷哼從身側(cè)響起宙址,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎调卑,沒想到半個月后抡砂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恬涧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年注益,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溯捆。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡丑搔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啤月,我是刑警寧澤煮仇,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站谎仲,受9級特大地震影響浙垫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜郑诺,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一夹姥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧间景,春花似錦佃声、人聲如沸艺智。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽十拣。三九已至封拧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夭问,已是汗流浹背泽西。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留缰趋,地道東北人捧杉。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像秘血,于是被迫代替她去往敵國和親味抖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 匯編語言的一些注意點 匯編語言是直接在硬件之上工作的編程語言灰粮。 CPU(Central Processing Un...
    BackSpace8閱讀 1,769評論 0 1
  • 王爽匯編全書知識點大綱 第一章 基礎(chǔ)知識 機(jī)器語言 匯編語言的產(chǎn)生 匯編語言的組成 存儲器 cpu對存儲器的讀寫 ...
    2c3ba901516f閱讀 2,408評論 0 1
  • 如何將句子寫具體-魔鬼訓(xùn)練 1仔涩、國旗飄揚(yáng)。 鮮艷的國旗隨風(fēng)飄揚(yáng)粘舟。 2熔脂、小朋友去上學(xué)。 許多小朋友背著書包...
    哆說閱讀 756評論 0 1
  • [原創(chuàng)]南蘇貓寧 —1— 單人房 雙人床 麥子在遲疑了30秒之后就跟著江小水進(jìn)了酒店柑肴。 然后霞揉,什么都沒有發(fā)生。 后...
    南蘇貓寧閱讀 542評論 0 5
  • 準(zhǔn)備 剛從千島湖回來晰骑,就要去青海了适秩,真是沒有停歇啊,當(dāng)然,旅游是我的愛好隶症,我還是非常興奮滴...
    余科熹閱讀 553評論 0 2