匯編學(xué)習(xí)筆記(一)

基礎(chǔ)知識

匯編語言,有 3 類指令組成:

  1. 匯編指令:機(jī)器碼的助記符,有對應(yīng)的機(jī)器碼显沈。
  2. 偽指令:沒有對應(yīng)機(jī)器碼隘截,由編譯器執(zhí)行,計算機(jī)并不執(zhí)行。
  3. 其他符號:如+、-、*浪慌、\,由編譯器識別朴则,沒有對應(yīng)機(jī)器碼权纤。

核心是編譯指令。每一種 cpu 都有自己的匯編指令集乌妒。

存儲器就是內(nèi)存汹想,存儲器被劃分為多個存儲單元,從 0 開始順序編號撤蚊,一個存儲單元就是一個字節(jié)(Byte)古掏。存儲器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進(jìn)制信息侦啸。

cpu 有 3 類總線:地址總線槽唾、數(shù)據(jù)總線丧枪、控制總線。

一個 cpu 有 n 根地址總線庞萍,則可以尋找 2 的 n 次方個內(nèi)存單元拧烦。
n 根數(shù)據(jù)總線一次能傳輸 n 位,即 n bit钝计。

控制總線是一些不同控制線的集合恋博,有多少根控制總線,就意味著 cpu 提供了對外部器件的多少種控制私恬。

內(nèi)存地址空間:對 cpu 來說债沮,系統(tǒng)中的所有存儲器中的存儲單元都處于一個統(tǒng)一的邏輯存儲器中,它的容量受 cpu 尋址能力的限制践付。這個邏輯存儲器即是所說的內(nèi)存地址空間秦士。

寄存器

一個典型的 cpu 由運(yùn)算器缺厉、控制器永高、寄存器等器件構(gòu)成,這些器件靠內(nèi)部總線相連提针。前一章說的總線命爬,相對于 cpu 內(nèi)部來說是外部總線。

不同 cpu辐脖,寄存器的個數(shù)饲宛、結(jié)構(gòu)都不同。

通用寄存器

8086cpu 所有寄存器都是 16 位嗜价。AX艇抠、BX、CX久锥、DX 這 4 個寄存器通常用來存放一般性數(shù)據(jù)家淤,被稱為通用寄存器。都可分為類似 AH 和 AL瑟由,BH 和 BL...

由于 8086 有 20 位地址總線絮重,但 8086 是 16 位的,即在內(nèi)部一次性處理歹苦、傳輸青伤、暫時存儲的地址只有 16 位,所以 8086 采用在內(nèi)部用 2 個 16 位地址合成的方法來形成一個 20 位的物理地址殴瘦。

地址加法器采用 物理地址=段地址x16+偏移地址 來合成物理地址狠角。(也即左移 4 位,也即 x10H)蚪腋。本質(zhì)就是基礎(chǔ)地址+偏移地址=物理地址擎厢。

cpu 可以用不同的段地址和偏移地址形成同一個物理地址究流。

段寄存器

段地址存放在段寄存器中,8086 有 4 個段寄存器:CS动遭、DS芬探、SS、ES

CS 和 IP 是 8086 中兩個最關(guān)鍵的寄存器厘惦,它們共同表示了 cpu 當(dāng)前要讀取指令的地址偷仿。CS 為代碼段寄存器,IP 為指令指針寄存器宵蕉。

問:cpu 根據(jù)什么將內(nèi)存中的信息看做是指令酝静?
答:cpu 將 CS:IP 指向的內(nèi)存單元中的內(nèi)容看做是指令。

在 cpu 中羡玛,程序員能用指令讀寫的部件只有寄存器别智。8086 大部分寄存器的值,都可以用mov來修改稼稿,mov稱為傳送指令薄榛。但不能用來設(shè)置 CS、IP 的值让歼。
若想修改 CS敞恋、IP,可以用jmp指令谋右,形如jmp 段地址:偏移地址硬猫。
若僅想修改 IP 的內(nèi)容,可用形如jmp 某一合法寄存器改执,如jmp ax啸蜜,可修改 IP 為 ax 中的值。
mov可以操作的有:寄存器和寄存器辈挂,立即數(shù)到寄存器衬横,寄存器和段寄存器,寄存器和內(nèi)存單元呢岗,段寄存器和內(nèi)存單元

代碼段

我們可以根據(jù)需要冕香,將一組內(nèi)存單元定義為一個段。我們可以將長度為 N(N<=64KB后豫,因是 16 位)的一組代碼悉尾,存在一組地址連續(xù)、起始地址為 16 的倍數(shù)的內(nèi)存單元中挫酿,從而定義了一個代碼段构眯。那么代碼段是如何被執(zhí)行呢?只要將 CS:IP 指向代碼段中第一條指令的首地址早龟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惫霸,一起剝皮案震驚了整個濱河市猫缭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壹店,老刑警劉巖猜丹,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異硅卢,居然都是意外死亡射窒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門将塑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脉顿,“玉大人,你說我怎么就攤上這事点寥“保” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵敢辩,是天一觀的道長蔽莱。 經(jīng)常有香客問我,道長责鳍,這世上最難降的妖魔是什么碾褂? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任兽间,我火速辦了婚禮历葛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘀略。我一直安慰自己恤溶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布帜羊。 她就那樣靜靜地躺著咒程,像睡著了一般。 火紅的嫁衣襯著肌膚如雪讼育。 梳的紋絲不亂的頭發(fā)上帐姻,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機(jī)與錄音奶段,去河邊找鬼饥瓷。 笑死,一個胖子當(dāng)著我的面吹牛痹籍,可吹牛的內(nèi)容都是我干的呢铆。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蹲缠,長吁一口氣:“原來是場噩夢啊……” “哼棺克!你這毒婦竟也來了悠垛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤娜谊,失蹤者是張志新(化名)和其女友劉穎确买,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纱皆,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拇惋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了抹剩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撑帖。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖澳眷,靈堂內(nèi)的尸體忽然破棺而出胡嘿,到底是詐尸還是另有隱情,我是刑警寧澤钳踊,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布衷敌,位于F島的核電站,受9級特大地震影響拓瞪,放射性物質(zhì)發(fā)生泄漏缴罗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一祭埂、第九天 我趴在偏房一處隱蔽的房頂上張望面氓。 院中可真熱鬧,春花似錦蛆橡、人聲如沸舌界。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呻拌。三九已至,卻和暖如春睦焕,著一層夾襖步出監(jiān)牢的瞬間藐握,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工垃喊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猾普,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓缔御,卻偏偏與公主長得像抬闷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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

  • 一.認(rèn)識匯編語言 要認(rèn)識匯編語言笤成,還得從編程語言的發(fā)展說起评架,語言有以下幾種分類,其發(fā)展都是為了讓我們更容易去操縱計...
    WellsCai閱讀 981評論 0 1
  • 匯編語言的種類 目前討論比較多的匯編語言有:8086 匯編(8086處理器是16bit 的 CPU)Win32 匯...
    7c205247047d閱讀 2,314評論 1 6
  • 王爽匯編全書知識點(diǎn)大綱 第一章 基礎(chǔ)知識 機(jī)器語言 匯編語言的產(chǎn)生 匯編語言的組成 存儲器 cpu對存儲器的讀寫 ...
    2c3ba901516f閱讀 2,408評論 0 1
  • 編程語言的發(fā)展 機(jī)器語言由0和1組成 匯編語言(Assembly Language)用符號代替了0和1炕泳,比機(jī)器語言...
    阿凡提說AI閱讀 3,989評論 0 15
  • 匯編總結(jié) 匯編的發(fā)展史 機(jī)械語言 由0和1組成的機(jī)器指令(如:0101 0001 1101 0110) 匯編語言(...
    iChuck閱讀 1,300評論 1 8