天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當前位置:主頁 > 論文百科 > 大學課程 >

匯編語言基本概念

發(fā)布時間:2017-04-30 21:04

  本文關(guān)鍵詞:匯編語言,由筆耕文化傳播整理發(fā)布。


匯編語言是指直接工作在硬件之上的語言,但不是機器語言,機器語言是機器指令的集合。匯編語言是匯編指令的集合,匯編指令是便于記憶的機器指令的另一種書寫方式,也就是說是機器指令的助記符。

image

匯編指令與數(shù)據(jù)在內(nèi)存中存儲都是二進制形式存儲,因此CPU是無法直接區(qū)分一塊內(nèi)存是地址還是數(shù)據(jù),但是CPU在與內(nèi)存(這里指得所有芯片內(nèi)存)進行數(shù)據(jù)傳輸時,將傳輸總線分成三大類:地址總線、數(shù)據(jù)總線、控制總線。這三類不同的總線讀過來的內(nèi)存值就分別對應的機器指令、機器數(shù)據(jù)、機器控制命令。

CPU通過地址總線來指定存儲單元,因此地址總線上能傳送多少不同信息,CPU就可以對多少個存儲單元進行尋址。通常意義上的32位,64位CPU指得就是這個地址總線寬度。一個CPU有N根地址總線,就表示這個CPU最多可以尋找2的N次方個內(nèi)存單元。

image

CPU向內(nèi)存發(fā)送取址1011(注意上面是低位,下面是高位),內(nèi)存就到指定地址取址。

CPU通過數(shù)據(jù)總線來傳輸數(shù)據(jù),因此,數(shù)據(jù)總線的寬度決定了CPU與外界數(shù)據(jù)傳輸速度。如下圖所示:

image

image

前面是8088CPU ,每次傳送8,傳送16位數(shù)據(jù)需傳送兩次。后面是8086CPU,一次就可以傳輸16位數(shù)據(jù)

CPU對外部器件的控制是通過控制總線來進行的,有多少根控制總線,意味著CPU可以控制多少個外部器件,因此,控制總線的寬度決定了CPU對外部器件的控制能力。

image

如上圖,CPU向讀信號控制線輸出讀信號,內(nèi)存就收到讀命令。同樣寫信號輸出控制線負責CPU向外傳送寫信號。

CPU通過總線控制主板上各種器件和接口卡連接上來的顯示器等。內(nèi)存是由存儲器提供,存儲器分為隨機存儲器(RAM,通常所說的內(nèi)存)和只讀存儲器(ROM,比喻說主板或各類接口卡上的ROM,用來存儲BIOS系統(tǒng))

image

image

前張圖是從物理上來分析存儲器,后面是以CPU的角度來看存儲器。對CPU來說,存儲器是按線性虛擬進行分配的,它不知道具體這個地址是對應到哪個具體器件。因此,不同的CPU架構(gòu)默認對內(nèi)存空間進行了地址劃分。

比喻8086PC就這樣劃分了存儲地址。

image

通常一個典型的CPU架構(gòu)是由運算器,控制器、寄存器等器件組成,這些內(nèi)部器件之間由內(nèi)部總線相互連接。其中8086CPU有14個寄存器,分別為AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

AX、BX、CX、DX稱之為通用寄存器,存儲過程就是將數(shù)值轉(zhuǎn)換為二進制,如18轉(zhuǎn)成二進制是10010,將這些二進制填進寄器對應位,并其它位全置為0.

image

image

這些寄存器是前后兼容的,它的兼容方式就是當它與8位兼容時,16位寄存器成兩個AH、AL,其它類推,這時8位只用低位寄存器空間位AL、BL、CL、DL等。32位CPU稱之為EAX、EBX、ECX、EDX,原理跟上面一樣。

image

這里有個技巧是二進制每四位剛好是一個十六進制的一位。二進制每三位是一個八進制的一位。

匯編指令是不區(qū)分大小寫的,下面學習幾個基本的匯編指令。

image

image

其中進位1會被寄存器另存到另位一個地方。

image

對al/ah/bl/bh這類寄存器,它同樣也不能自動進位到其它的寄存器。它們的進位都要保存到別的地方。

8086CPU是16位結(jié)構(gòu)的CPU,它有以下幾個特征:

【1】運算器一次可以處理16位數(shù)據(jù)

【2】寄存器的最大寬度是16位

【3】寄存器與運算器之間的通路是16位的。

【4】地址總線20位,可以達到1MB尋址能力。

8086CPU內(nèi)部是16位,但是外部是20位,因此它采用一種在內(nèi)部用兩個16位地址合成的方法來形成一個20位的物理地址。

image

如上圖所示,當CPU要讀內(nèi)存時,CPU提供兩個16位地址,一個稱之為段地址,另一個稱之為偏移地址,段地址和偏移地址通過內(nèi)部總線送到一個地址加法器,由地址加法器轉(zhuǎn)換成一個20位地址。

地址加法器計算方法是,物理地址=段地址*16+偏移地址(這里說明對任何一個進制的數(shù)據(jù),左移一位,相當于在原值基礎(chǔ)上乘以進制,比喻16進制左移1位,相當于乘以16)。

當CPU要取的內(nèi)存物理地址一定時,CPU給出何種段址和偏移地址,這個是不一定的。也就是說CPU可以用不同的段地址和偏移地址形成一個物理地址。如下圖所示。

image

以前有些人根據(jù)計算機體系架構(gòu)書的一些描述,錯誤的認為內(nèi)存劃分成不同的段,實際上這是一個錯誤概念,內(nèi)存沒有被分成一個一個的段,段的劃分來源于CPU,CPU采用分段方式來管理線性地址。

image

因此,從上圖左邊可以看出,內(nèi)存自身沒有劃分段,劃分段是從CPU的角度來進行劃分,因此怎么劃分也是由CPU決定的。從程序員的角度來說,可以認為一段連續(xù)的內(nèi)存就可以看成一個段,用段地址*16定位段的起始地址(基礎(chǔ)地址),所以段的起始地址肯定是16的倍數(shù)。用偏移地址定位段中的內(nèi)存單元,因為偏移地址為16位,變化范圍上0~FFFFH,所以段的長度最大是64K。

從CPU內(nèi)部結(jié)構(gòu)來說,8086CPU設置了四個段寄存器CS、DS、SS、ES來提供段地址,其中CS和IP是8086中兩個最關(guān)鍵的寄存喊叫,CS為代碼段寄存器,,IP為指針寄存器,也就是段地址和偏移地址。

image

上圖所示的是CPU的工作流程:

【1】地址加法器從CS:IP中讀取段地址2000*16加上偏移地址000H,得到內(nèi)存地20000H,送入地址總線,地址總線定位出內(nèi)存段地址2000H。

【2】根據(jù)匯編指令地址B8(代表MOV AX),取出三個地址,送入數(shù)據(jù)總線B82301,數(shù)據(jù)總線根據(jù)數(shù)據(jù)總線的長度是一次性讀取還是多次讀取。讀取后放入指令緩存器,送入CPU的執(zhí)行單元(ALU)。一旦指令被讀取,IP自動根據(jù)指令的寬度計算下一次指令讀取的偏移地址。如上圖變成0003H

【3】ALU計算后,將結(jié)果放入AX寄存器。至一次一個指令運行完畢,重復下一個指令。

對8086CPU加電啟動或復位后,默認CS指向FFFH,IP指向000H。因此開機后第一條指令是FFFF0H。

在任何時候,CPU根據(jù)CS:IP指向的內(nèi)存單元中的內(nèi)容看作指令,這樣就將內(nèi)存中的數(shù)據(jù)與指令區(qū)分開來。如果想要修改CS:IP的地址可以用jmp指令。

jmp 段地址:偏移地址同時修改CS:IP

image

jmp 某一合法寄存器,僅修改IP,偏移地址。

由前面可以知道內(nèi)存是連續(xù)的,并沒有分段,但在編程時,可以根據(jù)編程需要,將一組內(nèi)存單元定義為一個段,并將長度為N(小于64KB)的一段代碼放入其中,形成一個代碼段,如要執(zhí)行這段代碼,必須設置CS:IP地址為這個段的首地址。

image


  本文關(guān)鍵詞:匯編語言,由筆耕文化傳播整理發(fā)布。



本文編號:337570

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/dxkc/337570.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶2c3d5***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com
久久99夜色精品噜噜亚洲av| 91国内视频一区二区三区| 亚洲熟女国产熟女二区三区| 久热青青草视频在线观看| 在线一区二区免费的视频| 日韩高清中文字幕亚洲| 国产性情片一区二区三区| 亚洲国产精品久久网午夜| 国产精品视频一区麻豆专区| 日韩欧美第一页在线观看| 我的性感妹妹在线观看| 好吊妞视频免费在线观看| 亚洲国产一区精品一区二区三区色| 欧美在线观看视频免费不卡| 日韩免费国产91在线| 亚洲二区欧美一区二区| av中文字幕一区二区三区在线| 五月婷婷缴情七月丁香| 欧美一级片日韩一级片| 青青操在线视频精品视频| 99国产一区在线播放| 久久精品国产亚洲av麻豆| 日本在线 一区 二区| 久久一区内射污污内射亚洲| 福利视频一区二区三区| 五月激情婷婷丁香六月网| 国产日韩精品激情在线观看| 国产精品亚洲一区二区| 日本中文在线不卡视频| 久久91精品国产亚洲| 高清不卡视频在线观看| 午夜日韩在线观看视频| 暴力三级a特黄在线观看| 激情少妇一区二区三区| 亚洲精品伦理熟女国产一区二区 | 日本久久中文字幕免费| 婷婷开心五月亚洲综合| 大香蕉伊人一区二区三区| 亚洲综合香蕉在线视频| 偷拍美女洗澡免费视频| 国产一区二区三区午夜精品|