黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

查看全部128種考試
計算機等級考試
 考試動態  報考指南  考試大綱  歷年真題  模擬試題  復習資料  心得技巧 等考論壇
 二級 | VB  VF  C  C++  JAVA  ACCESS 三級 | 網絡  數據庫  信息管理  PC技術 四級 | 一級
1
2
3
4
5
6
7
8
9
10
admin  
【字體: 匯編語言教程之二
匯編語言教程之二
djks.exam8.com 來源:考試吧(Exam8.com) 更新:2004-8-16 23:07:00 計算機等級考試 考試論壇

第二章 認識處理器

                                                                        ----獻給教PC技術的朋友!

中央處理器(CPU)在微機系統處于“領導核心”的地位。匯編語言被編譯成機器語言之后,將由處理器來執行。那么,首先讓我們來了解一下處理器的主要作用,這將幫助你更好地駕馭它。

典型的處理器的主要任務包括
  • 從內存中獲取機器語言指令,譯碼,執行
  • 根據指令代碼管理它自己的寄存器
  • 根據指令或自己的的需要修改內存的內容
  • 響應其他硬件的中斷請求

一般說來,處理器擁有對整個系統的所有總線的控制權。對于Intel平臺而言,處理器擁有對數據、內存和控制總線的控制權,根據指令控制整個計算機的運行。在以后的章節中,我們還將討論系統中同時存在多個處理器的情況。

處理器中有一些寄存器,這些寄存器可以保存特定長度的數據。某些寄存器中保存的數據對于系統的運行有特殊的意義。

新的處理器往往擁有更多、具有更大字長的寄存器,提供更靈活的取指、尋址方式。

寄存器

如前所述,處理器中有一些可以保存數據的地方被稱作寄存器。

寄存器可以被裝入數據,你也可以在不同的寄存器之間移動這些數據,或者做類似的事情。基本上,像四則運算、位運算等這些計算操作,都主要是針對寄存器進行的。

首先讓我來介紹一下80386上最常用的4個通用寄存器。先瞧瞧下面的圖形,試著理解一下:

上圖中,數字表示的是位。我們可以看出,EAX是一個32-bit寄存器。同時,它的低16-bit又可以通過AX這個名字來訪問;AX又被分為高、低8bit兩部分,分別由AH和AL來表示。

對于EAX、AX、AH、AL的改變同時也會影響與被修改的那些寄存器的值。從而事實上只存在一個32-bit的寄存器EAX,而它可以通過4種不同的途徑訪問。

也許通過名字能夠更容易地理解這些寄存器之間的關系。EAX中的E的意思是“擴展的”,整個EAX的意思是擴展的AX。X的意思Intel沒有明示,我個人認為表示它是一個可變的量 。而AH、AL中的H和L分別代表高和低 。

為什么要這么做呢?主要由于歷史原因。早期的計算機是8位的,8086是第一個16位處理器,其通用寄存器的名字是AX,BX等等;80386是Intel推出的第一款IA-32系列處理器,所有的寄存器都被擴充為32位。為了能夠兼容以前的16位應用程序,80386不能將這些寄存器依舊命名為AX、BX,并且簡單地將他們擴充為32位——這將增加處理器在處理指令方面的成本。

Intel微處理器的寄存器列表(在本章先只介紹80386的寄存器,MMX寄存器以及其他新一代處理器的新寄存器將在以后的章節介紹)

通用寄存器
下面介紹通用寄存器及其習慣用法。顧名思義,通用寄存器是那些你可以根據自己的意愿使用的寄存器,修改他們的值通常不會對計算機的運行造成很大的影響。通用寄存器最多的用途是計算。

EAX
32-bit寬

通用寄存器。相對其他寄存器,在進行運算方面比較常用。在保護模式中,也可以作為內存偏移指針(此時,DS作為段 寄存器或選擇器)

EBX
32-bit寬

通用寄存器。通常作為內存偏移指針使用(相對于EAX、ECX、EDX),DS是默認的段寄存器或選擇器。在保護模式中,同樣可以起這個作用。

ECX
32-bit寬

通用寄存器。通常用于特定指令的計數。在保護模式中,也可以作為內存偏移指針(此時,DS作為 寄存器或段選擇器)。

EDX
32-bit寬

通用寄存器。在某些運算中作為EAX的溢出寄存器(例如乘、除)。在保護模式中,也可以作為內存偏移指針(此時,DS作為段 寄存器或選擇器)。

上述寄存器同EAX一樣包括對應的16-bit和8-bit分組。

用作內存指針的特殊寄存器

ESI
32-bit寬

通常在內存操作指令中作為“源地址指針”使用。當然,ESI可以被裝入任意的數值,但通常沒有人把它當作通用寄存器來用。DS是默認段寄存器或選擇器。

EDI
32-bit寬

通常在內存操作指令中作為“目的地址指針”使用。當然,EDI也可以被裝入任意的數值,但通常沒有人把它當作通用寄存器來用。DS是默認段寄存器或選擇器。

EBP
32-bit寬

這也是一個作為指針的寄存器。通常,它被高級語言編譯器用以建造‘堆棧幀’來保存函數或過程的局部變量,不過,還是那句話,你可以在其中保存你希望的任何數據。SS是它的默認段寄存器或選擇器。

注意,這三個寄存器沒有對應的8-bit分組。換言之,你可以通過SI、DI、BP作為別名訪問他們的低16位,卻沒有辦法直接訪問他們的低8位。

段寄存器和選擇器

實模式下的段寄存器到保護模式下搖身一變就成了選擇器。不同的是,實模式下的“段寄存器”是16-bit的,而保護模式下的選擇器是32-bit的。

CS 代碼段,或代碼選擇器。同IP寄存器(稍后介紹)一同指向當前正在執行的那個地址。處理器執行時從這個寄存器指向的段(實模式)或內存(保護模式)中獲取指令。除了跳轉或其他分支指令之外,你無法修改這個寄存器的內容。
DS 數據段,或數據選擇器。這個寄存器的低16 bit連同ESI一同指向的指令將要處理的內存。同時,所有的內存操作指令 默認情況下都用它指定操作段(實模式)或內存(作為選擇器,在保護模式。這個寄存器可以被裝入任意數值,然而在這么做的時候需要小心一些。方法是,首先把數據送給AX,然后再把它從AX傳送給DS(當然,也可以通過堆棧來做).
ES 附加段,或附加選擇器。這個寄存器的低16 bit連同EDI一同指向的指令將要處理的內存。同樣的,這個寄存器可以被裝入任意數值,方法和DS類似。
FS F段或F選擇器(推測F可能是Free?)。可以用這個寄存器作為默認段寄存器或選擇器的一個替代品。它可以被裝入任何數值,方法和DS類似。
GS G段或G選擇器(G的意義和F一樣,沒有在Intel的文檔中解釋)。它和FS幾乎完全一樣。
SS 堆棧段或堆棧選擇器。這個寄存器的低16 bit連同ESP一同指向下一次堆棧操作(push和pop)所要使用的堆棧地址。這個寄存器也可以被裝入任意數值,你可以通過入棧和出棧操作來給他賦值,不過由于堆棧對于很多操作有很重要的意義,因此,不正確的修改有可能造成對堆棧的破壞。

* 注意 一定不要在初學匯編的階段把這些寄存器弄混。他們非常重要,而一旦你掌握了他們,你就可以對他們做任意的操作了。段寄存器,或選擇器,在沒有指定的情況下都是使用默認的那個。這句話在現在看來可能有點稀里糊涂,不過你很快就會在后面知道如何去做。

特殊寄存器(指向到特定段或內存的偏移量):

EIP 這個寄存器非常的重要。這是一個32位寬的寄存器 ,同CS一同指向即將執行的那條指令的地址。不能夠直接修改這個寄存器的值,修改它的唯一方法是跳轉或分支指令。(CS是默認的段或選擇器)
ESP 這個32位寄存器指向堆棧中即將被操作的那個地址。盡管可以修改它的值,然而并不提倡這樣做,因為如果你不是非常明白自己在做什么,那么你可能造成堆棧的破壞。對于絕大多數情況而言,這對程序是致命的。(SS是默認的段或選擇器)

IP: Instruction Pointer, 指令指針
SP: Stack Pointer, 堆棧指針

好了,上面是最基本的寄存器。下面是一些其他的寄存器,你甚至可能沒有聽說過它們。(都是32位寬):

CR0, CR2, CR3(控制寄存器)。舉一個例子,CR0的作用是切換實模式和保護模式。

還有其他一些寄存器,D0, D1, D2, D3, D6和D7(調試寄存器)。他們可以作為調試器的硬件支持來設置條件斷點。

TR3, TR4, TR5, TR6 和 TR? 寄存器(測試寄存器)用于某些條件測試。

最后我們要說的是一個在程序設計中起著非常關鍵的作用的寄存器:標志寄存器。


轉帖于:計算機等級考試_考試吧
文章搜索  
看了本文的網友還看了:
計算機等級考試權威輔導教材: 訂書電話:010-62168566  更多>>>
網友評論
昵 稱: *  評 分: 1分 2分 3分 4分 5分
標題:   匿名發表    (共有條評論)查看全部評論>>
版權聲明 -------------------------------------------------------------------------------------
  如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
關于本站  網站聲明  廣告服務  聯系方式  付款方式  站內導航  客服中心  友情鏈接  考試論壇  網站地圖
Copyright © 2004-2008 考試吧計算機等級考試網 All Rights Reserved    
中國科學院研究生院權威支持(北京) 電 話:010-62168566 傳 真:010-62192699
百度大聯盟黃金認證  十佳網絡教育機構  經營許可證號:京ICP060677
主站蜘蛛池模板: 国产日产 | 日韩视频网址 | 精品一区二区三区在线视频观看 | 久久午夜免费视频 | 天天干女人 | 在线播放色 | 日本一区二区三区久久精品 | 999视频在线播放777 | 欧美精品h在线播放 | 免费在线不卡视频 | 狠狠色丁香久久综合五月 | 美国fx性欧美xxxxhd | 国产麻豆媒一区一区二区三区 | 日本羞羞无遮挡免费动漫 | 国产色手机在线观看播放 | 亚洲一区无码中文字幕 | 日韩高清伦理片中字在线观看 | a免费网站 | 国产精品激情丝袜美女 | 国产成人综合视频 | 人人爱天天做夜夜爽2020麻豆 | 在线观看视频色 | 天天摸天天碰天天爽天天弄 | 福利所导航导航导航导航 | 日韩免费视频 | 美国性xxx| 精品91一区二区三区 | 人妖三人交69欧美 | 亚洲一区日韩二区欧美三区 | 午夜爽爽性刺激一区二区视频 | 亚洲精品tv久久久久久久久 | 一级一片在线播放在线观看 | 国产aaa女人十八毛片 | 伊人久久大香线蕉综合热线 | 欧美高清亚洲欧美一区h | 欧美一级va在线视频免费播放 | 99在线观看巨臀大臀视频 | 日韩a级 | 午夜免费理论片在线看 | 天天拍天天色 | 在线免费观看一级毛片 |