《匯編語言》王爽著_讀書筆記(一)

基礎知識

機器語言

機器語言是機器指令的集合湘换,機器指令是一臺計算機可以正確執(zhí)行的命令窍箍,是一列二進制數字。計算機將其轉變成對應的一列高低電平温亲,以驅動計算機的電子器件手报,進行CPU的主要工作——運算乒验。

每一種微處理器的硬件設計和內部架構都不同挥转,故需要用不同的電平脈沖來控制其工作兜看,所以每一種微處理器都有其自己的機器指令集骨坑,也就是機器語言撼嗓。

若使用8086CPU完成運算 s = 768 + 1288 - 1280, 機器碼如下:

101110000000000000000011

000001010000000000110000

001011010000000000000101

程序員們將這些機器碼打在紙帶或卡片上欢唾,1打孔且警,0不打孔,再將程序通過過紙帶機或者卡片機輸入計算機礁遣,進行運算斑芜。

匯編語言的產生

顯然,機器碼很麻煩祟霍,所以產生了匯編語言杏头。

操作:寄存器BX的內容送到AX中

機器指令:1000100111011000

匯編指令:mov ax, bx

寄存器是CPU中的儲存數據的器件,一個CPU中有多個寄存器沸呐。

匯編語言通過編譯器來編譯成機器碼醇王,再由計算機最終執(zhí)行。(編譯器的編譯工作自然也是由計算機執(zhí)行)

匯編語言的組成

匯編語言又三類指令組成

  1. 匯編指令崭添,機器碼的助記符寓娩,有對應的機器碼

  2. 偽指令,沒有對應的機器碼滥朱,由編譯器執(zhí)行根暑,計算機不執(zhí)行

  3. 其他符號,如 + - * / 等徙邻,又編譯器識別,沒有對應的機器碼

匯編指令決定了匯編語言的特性畸裳。

儲存器

CPU要運算的數據的儲存位置缰犁,指令和數據都在儲存器中存放,就是內存(RAM)怖糊。

指令和數據

在內存或磁盤中帅容,指令和數據沒有任何區(qū)別,都是二進制信息伍伤。

儲存單元

儲存器被劃分成多個儲存單元并徘,每個儲存單元從0開始順序編號,如一個有128個儲存單元的儲存器扰魂,編號從0
~ 127.

微型機儲存器的一個儲存單元可以存儲一個Byte麦乞,即8個二進制位蕴茴,即8個bit,bit(比特)是電子計算機的最小信息單位

CPU對存儲器的讀寫

CPU想要從內存中讀取數據姐直,首先要制定存儲單元的地址倦淀,就像數據居住在一個小區(qū)的一個房子里,我們要找數據就要先確定他住在哪個房子里声畏,而每個房子都有自己的門牌號碼撞叽,這號碼就可以看成儲存器的編號。

在CPU讀寫數據時還要指明其要對哪一個器件進行操作插龄,因為CPU中不知有儲存器這一種器件愿棋。

CPU要進行數據的讀寫,必須和外部器件(芯片)進行下面3類信息的交互

  • 存儲器單元的地址(地址信息)

  • 器件的選擇均牢,讀或寫的命令(控制信息)

  • 讀或寫的數據(數據信息)

    在計算機中有專門連接CPU和其他芯片的導線(電子計算機處理初斑、傳輸的信息都是電信號,電信號當然要用導線傳送)稱為總線膨处,總線從邏輯上又分為3類:地址總線见秤、控制總線和數據總線。

  • 讀3號位置的數據操作:

    CPU通過地址線對內存發(fā)出信息3

    CPU通過控制線發(fā)出內存讀命令真椿,選中存儲器芯片鹃答,并通知其要從中讀取數據

    存儲器將3號位置的數據通過數據線發(fā)到CPU

機器碼: 10100001 00000011 00000000

匯編指令:mov ax, [3]

含義: 傳送3號單元的內容送入ax

地址總線

不同CPU的地址總線不同且有限,假設一個CPU有N根地址總線突硝,那么它最多可以尋找2的N次方個內存單元(Byte)

數據總線

數據總線的寬度決定了CPU和外界的數據傳送速度测摔,比如8根數據總線一次可以傳送一個8位二進制數據(即一個字節(jié),一個Byte解恰,一個存儲單元)

  • 當CPU的數據總線寬度為8锋八,那么它向內存中寫入數據89D8H時,就要分成兩次傳送护盈,第一次傳送D8挟纱,第二次傳送89,

第一次:

10010001 (89)

第二次:

00011011 (D8)

  • 當CPU的數據總線寬度為16腐宋,那么他可以一次傳送89D8H

第一次:

00011011 - 10010001 (89D8)

控制總線

控制總線的寬度決定了CPU對外部器件的控制能力紊服,前面講的內存讀寫命令是又幾根控制線綜合發(fā)出的,其中一根稱為“讀信號輸出”的控制線負責由CPU向外部傳送讀信號胸竞,CPU向該控制線輸出低電平表示將要讀取數據欺嗤;同理,有一根稱為“寫信號輸出”的控制線負責傳送寫信號卫枝。

內存地址空間概述

一個CPU的地址總線寬度為10煎饼,那么可以尋址2的10次方即1024個內存單元,這1024個可尋到的內存單元就構成這個CPU的內存地址空間校赤。

主板

就是PC機中的各個核心器件和主要器件都通過總線(地址總線吆玖、數據總線筒溃、控制總線)相連。這些器件有CPU衰伯、存儲器铡羡、外圍芯片組、擴展插槽等意鲸。擴展插槽根據接口和協議的不同烦周,一般插有RAM內存條和各類接口卡。

接口卡

所有可用程序控制其工作的設備怎顾,都要由CPU進行控制读慎。
但CPU不能對外部設備直接控制,如顯示器槐雾、音響夭委、打印機等。所以CPU通過總線向接口卡發(fā)送命令募强,接口卡根據CPU的命令控制外設進行工作株灸。

各類存儲器芯片

  • RAM 隨機存儲器

用于存放CPU使用的絕大部分程序和數據

  • 裝有BIOS的ROM 只讀存儲器

BIOS是由各種接口卡廠商提供的軟件系統,可以通過它利用該硬件設備進行最基本的輸入輸出(Basic
Input/Outp System)

  • 接口卡上的RAM

如顯存擎值,應付大批量輸入輸出數據的暫時存儲情況慌烧,我們將需要顯示的內容寫入顯存,就會顯示在顯示器上鸠儿。

內存地址空間

上面說的各類存儲器屹蚊,在物理上是獨立的器件,但有以下兩點相同:

  • 都和CPU的總線相連(直接:RAM等进每, 間接: 接口卡)

  • CPU對它們進行讀或寫的時候都通過控制線發(fā)出內存讀寫命令汹粤。

也就是說,CPU把他們總的當作一個由若干存儲單元組成的邏輯存儲器田晚,這個邏輯存儲器就是我們所說的內存地址空間嘱兼,匯編語言面對的就是這個內存地址空間。

這個總的邏輯存儲器通過不同的器件的空間分成了一個個地址段肉瓦,CPU通過訪問不同的地址段以達到控制不同的器件的目的遭京,在一段地址空間中讀寫數據,實際上就是在相對應的物理存儲器中讀寫數據泞莉。

假設內存地址空間的地址段分配如下:

  • 地址0~7FFFH的 32KB空間為 主隨機存儲器的地址空間;
  • 地址8000H~9FFFH的 8KB空間 為 顯存地址空間船殉;
  • 地址A000H~FFFFH的 24KB為 各個ROM的地址空間鲫趁;

這樣,當CPU向內存地址為1000H的內存單元中寫入數據利虫,這個數據就會被寫入到隨機存儲器中挨厚,以此類推堡僻。

  • 而CPU向內存地址為C000H的內存單元中寫入數據的操作是沒有結果的,因為C000H單元的內容是ROM存儲器中的一個單元疫剃,它是只讀的钉疫。
邏輯存儲器

內存地址空間受CPU地址總線寬度的限制。
8086CPU的地址總線寬度為20巢价,所以可以傳送2的20次方個不同的地址信息(0 ~ 2的20次方-1)牲阁,即可以定位2的20次方個內存單元,則8086PC的內存地址空間大小為1MB(1024KB壤躲、2的20次方Byte)城菊。
同理,80386CPU的地址總線寬度為32碉克,則內存地址空間最大為4GB凌唬。

在使用基于一個計算機硬件系統進行編程的時候,必須知道這個系統的內存地址空間分配情況漏麦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末客税,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子撕贞,更是在濱河造成了極大的恐慌更耻,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件麻掸,死亡現場離奇詭異酥夭,居然都是意外死亡,警方通過查閱死者的電腦和手機脊奋,發(fā)現死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門熬北,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诚隙,你說我怎么就攤上這事讶隐。” “怎么了久又?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵巫延,是天一觀的道長。 經常有香客問我地消,道長炉峰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任脉执,我火速辦了婚禮疼阔,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己婆廊,他們只是感情好迅细,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淘邻,像睡著了一般茵典。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宾舅,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天统阿,我揣著相機與錄音,去河邊找鬼贴浙。 笑死砂吞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的崎溃。 我是一名探鬼主播蜻直,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼袁串!你這毒婦竟也來了概而?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤囱修,失蹤者是張志新(化名)和其女友劉穎赎瑰,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體破镰,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡餐曼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了鲜漩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片源譬。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孕似,靈堂內的尸體忽然破棺而出踩娘,到底是詐尸還是另有隱情,我是刑警寧澤喉祭,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布养渴,位于F島的核電站,受9級特大地震影響泛烙,放射性物質發(fā)生泄漏理卑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一蔽氨、第九天 我趴在偏房一處隱蔽的房頂上張望傻工。 院中可真熱鬧,春花似錦孵滞、人聲如沸中捆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泄伪。三九已至,卻和暖如春匿级,著一層夾襖步出監(jiān)牢的瞬間蟋滴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工痘绎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留津函,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓孤页,卻偏偏與公主長得像尔苦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子行施,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容