組合語言學習筆記2

2021-05-28 17:44:08 字數 2190 閱讀 3945

組合語言學習筆記2--暫存器

乙個cpu是由運算器,控制器,暫存器等期間組成,這些器件是有內部匯流排連線的。運算器進行運算(資訊處理),暫存器進行資訊儲存的,控制器進行控制各種期間的工作。程式設計師對cpu的控制就是通過指令改變暫存器中的儲存資訊進行間接地控制cpu的。當然不同的cpu,暫存器的結構個數不盡相同。8086cpu具有14個暫存器分別是 ax,bx,cx,dx,si,di,ss,cs,ds,es,bp,sp,ip,psw(程式狀態字暫存器)。各個暫存器的名字用途以後慢慢介紹.當然限於本人水平目前介紹的都是16位暫存器,本人的學習目前也是限於16位組合語言。

這些暫存器又按照用途分為不同的暫存器種類。

通用暫存器--用來存放一般性的資料(ax,bx,cx,dx)這四個暫存器可以相應的劃分成兩個8位暫存器使用,可以方便的進行位元組操作。例如ax->ah+al,bx->bh+bl;這四個通用暫存器都可以這樣劃分使用,呵呵凡是xl都表示低8位(0-7位—),xh都表示高8位(8-15位)注意其他的暫存器可不能轉換成兩個使用。

暫存器的儲存

16位暫存器可以存放乙個字單元的資訊,高8位存放高位元組,低八位存放低位元組。下面介紹幾條簡單的彙編指令進行練習。

mov ax,12  ;

呵呵此處解釋一下彙編指令語句一般都是有原運算元(前邊),目的運算元(後邊)組成,兩個運算元中間用逗號隔開,後邊的分號相當於c語言中的//起到了揭示書名分隔符的作用(有一定的其他程式語言基礎的童鞋***)    此語句就是將運算元12移動到ax暫存器中 mov就是英文單詞move移動的意思麼。在組合語言中這類彙編指令很常見以後不再講解。

實體地址

cpu訪問記憶體單元總要有位址才能訪問,而實體地址是由段位址*10h+偏移位址組成的(以後解釋,定址方法很多很實用,但是也是很難掌握的)  8086的上代產品4004是4位結構,8080和8085是8微結構到了8086就成了16微結構。這其中的意思是cpu一次性處理資訊的位數,呵呵目前的cpu不是32位麼。。。。8086cpu用兩個16位位址合成乙個20位位址來增大自己的定址空間(cpu定址範圍越大,cpu效能越好,就能快捷的訪問更多的資料),這就引出了段位址,偏移位址。。基本定址操作是這樣的:

1 cpu相關器件提供兩個16位位址,

2 位址加法起將兩個位址合成乙個20位位址

3 位址加法器將合成位址傳送到相應控制電路

4 控制電路將合成位址送到位址匯流排

前邊所說的 實體地址=段位址*16(或10h)+偏移位址;具體解釋為16位址中每一位都是二進位制位其中16不就是2的4次方麼。換成16進製制不就是10h麼(這個你也懂得)。所以16微結構的cpu就能夠進行20位定址了。不過段的概念是比較難懂的。

段的解釋

段位址就是說的段概念。雖然成為段,但是儲存單元並沒有劃分成乙個乙個的段,劃分成段的說法只是為了好管裡,好理解,實際上並沒有進行劃分。由於前邊的說法實體地址=段位址*16+偏移位址。那麼段位址一定能被6整除嘍。就是每個段的起始位址都是16的倍數。

另外除了通用暫存器,xs類的暫存器叫做段暫存器,這個正好和和實體地址的合成相對應,其中cs是重點要介紹的。cs是**段暫存器,相應的ip是指令指標暫存器,這二者和起來共同確定cpu所處理的指令位址當然他們二者共同確定cpu將要執行的指令位址。也是遵循20位實體地址合成規則cs:ip指向的位址就是cpu將要執行指令的的位址。此時cpu沒執行一條指令ip的值都會自加2,cpu工作簡介如下

1 cpu從cs:ip指向的儲存單元取指令,把指令放入指令緩衝器

2 cpu執行指令

3 ip自動加2

4 執行下一條指令唄。

不過 8086cpu電啟動時cs初始值=f000h,ip=ffffh 

修改cs和ip的指令 

**段。。

對於**段也不是無窮大無限制的8086pc機定義最大段不能超過64kb

關於課後實驗解析

debug解釋:dos windows提供的實模式除錯工具,用來檢視暫存器內容,記憶體情況 

debug相應的命令 

r: 檢視,改變暫存器的數值

使用方法 debug情況下輸入   r 暫存器 就顯示暫存器數值 然後等待你輸入數值進行修改(途中我輸入了1) 若是不想修改直接按 enter鍵跳過。

其他命令相應如上格式  。。一截圖為主。。

d命令檢視記憶體。。。相應操作如圖。。。。

e 命令可以進行記憶體的改寫。。。 

u 命令是進行將機器指令翻譯成彙編指令

t 命令是執行一條彙編指令

a 命令將彙編指令寫入記憶體。。

截圖如下。。

組合語言學習筆記(2)

1 彙編指令 機器碼的助記符,有對應的機器碼 2 偽指令 沒有對應的機器碼,由編譯器執行,計算機並不執行 3 其他符號 由編譯器識別,沒有對應的機器碼 指令和資料是應用上的概念。在記憶體或磁碟上,指令和資料沒有任何區別,都是二進位制資訊。cpu要想進行資料讀寫,必須和外部器件進行下面三類資訊互動 匯...

組合語言學習筆記

學習參考資料 大灰狼 講彙編 資料匯流排,位址匯流排,控制匯流排。位址匯流排有多少條就決定了cpu最大的記憶體使用量。80386有32位位址匯流排,所以它的定址能力就是4g.暫存器 通用暫存器,段暫存器,ax暫存器 通用暫存器,存放資料。高位位元組ah,低位位元組al。實體地址表示方法 位址加法器,...

組合語言學習筆記

cs ip是指向程式執行的位置 code segment ds 儲存記憶體中取資料的位址,data segment ss sp是指向堆疊的位置 stack segment cx 裡儲存的是loop執行的標誌 loop執行時,cx cx 1,若此時cx裡值為0,則跳出loop,否則繼續loop 初始 ...