參考書籍《組合語言》王爽 著/清華大學出版社
選單導航:一、彙編基礎知識
二、暫存器和常見彙編指令演示
一、基礎知識
1、彙編指令是機器指令的助記符,同機器指令一一對應
2、每一種cpu都有自己的彙編指令集
3、cpu可以直接使用的資訊在儲存器中存放
4、在儲存器中指令和資料沒有任何區別,都是二進位制資訊
5、儲存單元從零開始順序編號
6、乙個儲存單元可以儲存8個bit, 即8位二進位制數
7、1byte = 8bit ; 1kb = 1024b ; 1mb = 1024kb ; 1gb = 1024mb
8、cpu要想進行資料的讀寫,必須和外部器件(標準的說法是晶元)進行下面3類資訊的互動:
9、那麼cpu是通過什麼將位址、資料和控制資訊傳到儲存器晶元中的呢?電子計算機能處理、傳輸的資訊都是電訊號,電訊號當然要用導線傳送。
在計算機中專門有連線cpu和其他晶元的導線,通常稱為匯流排。
匯流排從物理上來講,就是一根根導線的集合。根據傳送資訊的不同,匯流排從邏輯上又分為3類:位址、控制、資料
每乙個cpu晶元都有許多管腳,這些管腳和匯流排相連。也可以說,這些管腳引出匯流排。
乙個cpu可以引出3種匯流排的寬度標誌了這個cpu的不同方面的效能。
資料匯流排:資料匯流排的寬度決定了cpu與其他器件進行資料傳送時的一次資料傳送量
控制匯流排:
控制匯流排的寬度決定了cpu對系統中其他器件的控制能力
10、做個小練習
答案:
1、乙個cpu 的定址能力為8kb,那麼它的位址匯流排的寬度為__13__view code2、8080,8088,80286,80386的位址匯流排寬度分別為16根,20根,24根,32根.那麼他們的定址能力分別為多少__64__kb, __1__mb,__16__mb,__4__gb
3、8080,8088,8086,80286,80386的資料匯流排寬度分別為8根,8根,16根,16根,32根.那麼它們一次可以傳輸的資料為:__1__b,__1__b,__2__b,__2__b,__4__b
4、從記憶體中讀取1024位元組的資料,8086至少要讀__512__次,80386至少要讀取__256__次.
二、暫存器
1、從物理結構來講,cpu包括運算邏輯部件、暫存器部件和控制部件等
2、對程式設計師來說,cpu中最主要部件是暫存器,可以通過改變暫存器的內容來實現對cpu的控制;
不同的cpu,暫存器的個數、結構是不同的。比如8086是16位結構的cpu,
8086有14個16位的暫存器,每個可以存放2個位元組。
3、通用暫存器的作用
舉例說明,在記憶體中有塊紅色記憶體空間的值是3,現在想把它的值加1,並將新的計算結果儲存到藍色記憶體空間,如圖所示
那麼這個在cpu的執行步驟是怎樣的呢?
1)、cpu首先會將紅色記憶體空間的值放到ax暫存器中:mov ax, 紅色記憶體空間
2)、然後讓ax暫存器與1相加:add ax, 1
3)、最後將值賦值給記憶體空間:mov 藍色記憶體空間,ax
4、資料暫存器的相容:
5、彙編指令舉例
接下來看一下cpu執行下圖中的每條指令後,對暫存器中的資料進行的改變:
說明,假設原ax中的值:0000h, 原bx中的值:0000h
為什麼程式段中最後一條指令 add ax,bx, 在執行前ax和bx中的資料都為8226h, 相加後所得值為044ch, 而不是:1044ch ?
因為ax為16位暫存器,只能存放4位16進製制的資料,所以最高位的1不能在ax中儲存,ax最後儲存的資料為:044ch
再來看一段程式段的指令,注意高位和低位暫存器的計算
最後乙個指令 add al,93h後ax中的資料為0058h, 為啥?
執行前,al中的資料為c5h, 相加93h為158h, 但是al為乙個獨立8位暫存器,和ah沒有關係,cpu在執行這條指令時認為ah和al時兩個不相關的暫存器。
所以只能存放兩位十六進製制的資料,所以最高位的1丟失。
另外,在進行資料傳送或運算時,要注意指令的兩個操作物件的位數應當是一致的,例如下圖這些是正確的指令:
而下面的指令等都是錯誤的指令
組合語言學習
持續更新 彙編指令 1.mov指令 mov是乙個傳送指令,可以實現以下操作 有一點需要注意,資料不能直接傳給段暫存器,比如mov ds,100h就是錯誤的。但是可以將其他暫存器中的值賦給段暫存器。段暫存器有cs,ds,ss,es等。如果你想知道為什麼,那就可以去了解一下關於每條指令的硬體實現。後面還...
組合語言學習筆記
學習參考資料 大灰狼 講彙編 資料匯流排,位址匯流排,控制匯流排。位址匯流排有多少條就決定了cpu最大的記憶體使用量。80386有32位位址匯流排,所以它的定址能力就是4g.暫存器 通用暫存器,段暫存器,ax暫存器 通用暫存器,存放資料。高位位元組ah,低位位元組al。實體地址表示方法 位址加法器,...
組合語言學習四
本人比較懶,可能懶得對前面的文章進行整理,也不怎麼喜歡寫很多,呵呵。今天往後的系列可能會更懶一些,基本翻譯jones 1 and.bartlett.publishers.introduction.to.80x86.assembly.language.and.computer.architecture...