組合語言-目錄導航【step-assembly】
a: cpu 主要由運算器,控制器,暫存器三部分組成。三者之間依靠內部匯流排相聯絡(之前提到的匯流排是外部匯流排)。其中運算器是做資訊處理的,暫存器是做資訊儲存,控制器則是控制器件工作,內部匯流排是連線了各種元器件,進行資料傳送。
其中暫存器最為重要,我們可以通過改變暫存器的內容來實現對 cpu 的控制。暫存器有很多,8086cpu 裡面由 14 個暫存器。
a: 8086cpu 的暫存器是 16 位的,其中 ax,bx,cx,dx用來存放一般性資料被稱為通用暫存器。其中 ax 裡面是16位,也就是可以儲存16位的資料,但是之前的暫存器是 8位的為了保證和上一代的相容,16位的可以拆分成兩個 8位的,即 ax = ah + al,可以分成兩個暫存器。
a: 1 位元組等於 8 位元,1 位元組可以存在 8 位的暫存器中,而字是由兩個位元組組成,分為高位元組和低位元組可以儲存在 16 位的暫存器中。
a:mov ax,18 指將 18 賦值給變數 ax
add ax,8 指變數 ax 加上 18
a: 實體地址就是記憶體位址,每乙個記憶體單元都由唯一的位址,cpu 首先需要在內部產生乙個數字,然後再位址匯流排上表示出來。
a: 8086cpu是16位的,而之前的機器是 8 位的,16 位表示計算機一次可處理的資料最長為 16 位,具體到 cpu 上就是運算器一次可處理 16 位資料,暫存器的最大寬度是 16 位,暫存器和運算器之間的通路也是 16 位。
a:以 8086cpu 為例,其暫存器是 16 位的所以一次只能表示 16 位的數字,但是它的位址匯流排的寬度是 20 位的,所以需要兩個暫存器合起來表示。兩個暫存器表示出來的資料通過位址加法器來合成,然後輸入到控制電路中推送到位址匯流排上。
a:位址加法器可以將輸入分為段位址和偏移位址,而輸出則是實體地址,其中 段位址×16 + 偏移位址 = 實體地址。
a:因為暫存器是16位的,乘 16 後相當於左移 4 位,留出來 4 個位置供偏移位址補上。加上後就變成了 20 位,就能放入位址匯流排中了。
a: cpu內部並沒有將記憶體位址劃分成段,而是根據段位址和偏移位址來劃分的,段位址乘 16 ,所以段的開頭是 16 的倍數,而偏移位址是 16 位,所以定址能力位 64kb,即段長位 64kb .
a:在cpu 的內部由專門的段暫存器,例如 8086cpu 內部由 cs/ds/ss/es 四個段暫存器來提供記憶體單元的段位址。
彙編 (第二章 暫存器)
2.1通用暫存器 8086暫存器都是16位的,通常由ax,bx,cx,dx,同時又可以分為高位和低位,例如ax,高位表示ah,低位表示al。2.2字在暫存器中的儲存 位元組 記為byte,乙個字由八個bit組成 字 記為word,乙個字由兩個位元組組成 2.3幾條彙編指令 mov ax,18將18送...
第二章 暫存器
一 cpu概述 1 乙個典型的cpu由運算器 控制器 暫存器等器件組成。2 內部匯流排實現cpu內部各個器件之間的聯絡。3 外部匯流排實現cpu和主機板上其它器件的聯絡。二 通用暫存器 1 8086cpu均為16位可儲存兩個位元組。ax.bx.cx.dx通常用來存放一般性的資料,被稱為通用暫存器。2...
第二章 暫存器
cpu中的主要部件是暫存器。暫存器是cpu中程式設計師可以用指令讀寫的部件。程式設計師通過改變各種暫存器中的內容來實現對cpu的控制。暫存器包括 ax bx cx dx si di si di sp bp ip cs ss ds es psw。2.1 通用暫存器 8086cpu的所有暫存器都是16位...