彙編學習(1)

最近忙成狗,不夠也要抽出時間學習,一天不學習趕不上劉少奇~~IT行業競爭如此激烈,時間越久被甩的越遠,以前都是零零散散的學一些東西,看過彙編語言,計算機原理,數據結構,C、C++PRIMER 熟練運用設計模式,精通AS3,JAVA等面向對象,不過底層方面和網絡編程方面幾乎是盲點,先從基礎着手把,把知識穿起來學起來就容易了,廢話不多說了,之後的都是學習筆記,主要用於個人學習記錄,如無意中又你中意的內容,也算是給社會製造點兒氧氣了,也希望大家能和我一樣堅持住,學習最怕三分鐘熱血!!!



這一節主要探討一下全局變量在彙編代碼中的表現


簡單擼幾行代碼 ,我用的是VS2012,時代不同了,我也放棄vc6.0了,個人認爲無論工具還是理論,都要跟上潮流,這事關效率問題,當然經典的部分還需要傳承,不扯太多了,

F5調試到斷點處,右鍵轉到反彙編窗口


看上面框起來的代碼,mov大家都很熟悉了,讓我來囉嗦一邊把!,其實我是給自己聽的 嘿嘿!!

00EF13BE 這個事mov指令存放的地址

dword 雙字

ds:[0EF8130h]這個有點兒技術含量了,就是ds是段寄存器,存放數據段地址,[]中的地址是偏移量,這是基本尋址方式中的一種典型,如果有不懂的可以去看王爽老師的彙編語言,64h = 100 就是把100放到ds:[0EF8130h]所指向的內存地址中

ptr 這個就簡單了,指明你要用多大的內存空間來存放100,多大呢,dword 就是雙字 4個字節。 下面我們執行完看一下ds:[0EF8130h]這個地址裏是不是變成100了

狗狗狗~~~

騷等~再說一句!

我們把光標放到ds上發現值是0,這樣我們只需要定位0EF8130h這裏就好了,F11看看結果吧

運行前 運行後 

和預期的一樣,這裏有個疑問,如何只定多大的內存空間來存儲這個數呢,哎,蠢貨,你定義的變量類型決定的啦!下面我們把int g = 0 ;改成 char型的


看出區別了把,好了 今天就到這裏,哥哥我要回去睡覺了!!!!明天再見




發佈了27 篇原創文章 · 獲贊 6 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章