隨著第一章的結束,我們對組合語言的概況有了足夠清晰和明確的基本認識,第二章的展開將會圍繞著暫存器的方方面面具體闡釋,暫存器是cpu中程式設計師可以用指令讀寫的部件,可以通過更改暫存器中的內容來實現對cpu的掌控。
不同的cpu,暫存器的個數、結構是不同的,8086cpu有12個暫存器,分別是ax、bx、cx、dx、si、di、sp、bp、ip、cs、ss、ds、es、psw。
通用暫存器
ax、bx、cx、dx(16位)
乙個16位暫存器可以儲存乙個16位的資料,為了和早期的cpu操作相容,每個通用暫存器分為2個8位暫存器來使用。
ax分為ah和al
bx分為bh和bl
cx分為ch和cl
dx分為dh和dl
拿ax暫存器舉例
下面對幾個基本概念進行補充:
位元組:記為byte,乙個位元組由8個bit組成,可以存在8位暫存器中。
字:乙個字由兩個位元組組成,可以存在乙個16位暫存器中。
彙編指令
程式設計師通過彙編指令來控制cpu進行工作。
下面舉幾個常見的彙編指令:
注:彙編指令中不分大小寫,在mov和add指令操作中,操作物件必須位數一致,運算時如果超過暫存器的位數,要捨掉。
實體地址
cpu通過位址匯流排送入儲存器的,每乙個單元的唯一位址。
16位cpu的特性:
運算器最多可以處理16位的資料。
暫存器的最大寬度為16位。
暫存器和運算器之間的通路為16位。
8086cpu有20位位址匯流排,可以傳送20位位址,而8086cpu只是16位結構,其採用一種在內部用兩個16位位址合成的方法來形成乙個20位的實體地址,
實體地址=段位址*16+偏移位址
段位址也稱為基礎位址或者起始位址,段只是乙個隱藏概念。
段暫存器:cs、ds、ss、es
提供段位址
cs:**段暫存器,ip:指令指標暫存器
在8086機中,任意時刻,cpu將cs:ip指向的內容當作指令執行
jmp:此命令用來修改cs、ip的值。
舉例jmp 4ae3:2
cs ← 4e3h
ip ← 2
組合語言 第二章 暫存器
乙個典型的cpu由運算器 控制器 暫存器等組成.功能如下 1.運算器進行資料的處理 2.暫存器進行資訊儲存 3.控制器控制各種器件進行工作 4.內部匯流排連線各種器件,進行資料傳輸 8086cpu所有暫存器都是16位的。ax bx cx dx這四個暫存器通常用來存放一般性資料,被稱為通用暫存器,ax...
組合語言之第二章暫存器
一 通用暫存器 乙個典型cpu由運算器 暫存器 控制器構成,而暫存器是cpu中程式設計師可以用指令讀寫的部件。不同的cpu,暫存器的個數 結構是不同的。8086cpu的暫存器都是16位的,由於8086cpu上一代cpu中暫存器都是8位的,為了相容性,8086cpu的通用暫存器 通常用來存放一般性的資...
組合語言(王爽)第二章暫存器
乙個典型的cpu由運算器 控制器 暫存器等部件組成,部件之間靠內部匯流排連線。運算器進行資訊處理,暫存器進行資訊儲存 控制器控制各部件進行工作,內部匯流排連線各部件以進行資料的傳輸。不同的cpu暫存器的個數和結構都是不盡相同的。2.1通用暫存器 以8086為例,其內部所有暫存器都是16位的,即兩個位...