版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、主講人鄭曉薇,匯編語言,第二章,遼寧師范大學(xué),計算機(jī)與信息技術(shù)學(xué)院,第二章 計算機(jī)基本原理,設(shè)問:,1匯編語言與微型計算機(jī)系統(tǒng)有哪些聯(lián)系 ? 2寄存器的重要性是什么 ? 3什么是邏輯地址、物理地址 ? 4. 存儲器分段是什么概念 ? 5. 計算機(jī)存儲的數(shù)據(jù)能看到嗎 ?,本章重點(diǎn),微型計算機(jī)系統(tǒng) 80X86寄存器 物理地址與邏輯地址 存儲器分段,2.1 馮諾依曼計算機(jī),馮諾依曼計算機(jī)的基本特點(diǎn): (1)采用存儲程序方式,即程序和數(shù)據(jù)放在同一個存儲器中,程序指令和數(shù)據(jù)都用二進(jìn)制表示,兩者都可以送到CPU執(zhí)行和運(yùn)算。 (2)存儲器是按地址訪問的,每個存儲單元的位數(shù)是固定的。存儲單元采用線性編址方式,
2、按順序取出指令。 (3)指令由操作碼和地址碼構(gòu)成。根據(jù)指令含義發(fā)出控制信號控制計算機(jī)的操作。 (4)機(jī)器以運(yùn)算器為中心,輸入輸出設(shè)備都要經(jīng)過CPU與存儲器間進(jìn)行數(shù)據(jù)傳送。,2.1.1 馮諾依曼機(jī)原理,計算機(jī)由運(yùn)算器、控制器、存儲器、輸入設(shè)備、輸出設(shè)備五大部件組成。運(yùn)算器和控制器合稱為中央處理器(CPU)。 中央處理器CPU 存儲器 輸入輸出設(shè)備 總線及接口,2.1.2 馮諾依曼計算機(jī)的基本結(jié)構(gòu),內(nèi)存儲器 Inner Memory,輸入設(shè)備 Input Device,中央處理器 ,輸出設(shè)備 Output Device,D-BUS,A-BUS,C_BUS,輸入接口,輸出接口,中央處理器CPU,中央
3、處理器(CPU)是計算機(jī)硬件系統(tǒng)的核心部件,是計算機(jī)系統(tǒng)接受命令并按命令完成對應(yīng)操作的控制指揮中心和運(yùn)算中心。,CPU主要由算術(shù)和邏輯運(yùn)算單元ALU、地址發(fā)生和控制單元、指令譯碼單元、數(shù)據(jù)寄存器單元、總線驅(qū)動單元、時序控制單元等組成。,返回,存儲器,存儲器用來存儲在計算機(jī)系統(tǒng)中運(yùn)行的程序,程序處理的原始數(shù)據(jù),中間數(shù)據(jù)及最終結(jié)果的設(shè)備。存儲器分為內(nèi)存和外存。 內(nèi)存又稱主存,用于存儲計算機(jī)當(dāng)前正在運(yùn)行的程序,正在處理的原始數(shù)據(jù),中間數(shù)據(jù)及最終結(jié)果的存儲器。 內(nèi)存按功能可分為兩種:只讀存儲器ROM (Read Only Memory)和隨機(jī)存取存儲器RAM (Random Access Memory
4、)。,返回,輸入輸出設(shè)備,輸入/輸出設(shè)備統(tǒng)稱為外部設(shè)備(Peripheral),是用來實(shí)現(xiàn)人機(jī)交換信息的裝置。 輸入設(shè)備:向計算機(jī)的主存或CPU送入程序或數(shù)據(jù)。如鍵盤、光筆、讀卡機(jī)、掃描儀、磁盤驅(qū)動器等。 輸出設(shè)備:將計算機(jī)處理的結(jié)果輸出給用戶。如顯示器打印機(jī)、繪圖儀、磁盤驅(qū)動器等,返回,總線及接口,計算機(jī)總線:分為內(nèi)部總線和外部總線。內(nèi)部總線指的是CPU內(nèi)部各個部件之間的連線。外部總線又稱為系統(tǒng)總線,是連接計算機(jī)主板上各種芯片以及各個接口部件的總線。系統(tǒng)總線分為地址總線、數(shù)據(jù)總線、控制總線三大類。,返回,外部設(shè)備和計算機(jī)主機(jī)之間必須有一個中間介質(zhì)作為緩沖部件,該部件稱為接口(Interfac
5、e)。外部設(shè)備通過連在外部總線上的接口與CPU相連。接口又分為并行接口和串行接口。 并行接口:同時并行地傳送多位數(shù)據(jù),例如8位數(shù)據(jù)用8根數(shù)據(jù)線做并行傳輸。 串行接口:數(shù)據(jù)是一位接一位傳輸?shù)?,只需一根?shù)據(jù)線 。,2.2 微型計算機(jī)系統(tǒng),2.2.1 微型計算機(jī)系統(tǒng)概念,匯編語言與微型計算機(jī)系統(tǒng)密切相關(guān)。先來明確匯編語言的學(xué)習(xí)內(nèi)容。第1章中提到的三條匯編指令: MOV AX,35 ADD AX,27 MOV Z,AX 這幾條指令中涉及到寄存器(AX)、加法運(yùn)算、存儲單元(Z)、數(shù)據(jù)的獲取和傳送、指令的存放等內(nèi)容。,2.2.2 微處理器,微處理器分為執(zhí)行部件EU和總線接口部件BIU兩部分。 執(zhí)行部件E
6、U中包含運(yùn)算器的算術(shù)邏輯運(yùn)算單元ALU、通用寄存器組、標(biāo)志寄存器FLAGS、EC單元控制系統(tǒng)等; 總線接口部件BIU包含段寄存器組(CS、DS、ES、SS)、指令指針寄存器IP、指令隊列單元、地址加法器、總線控制系統(tǒng)等。,2.3 80X86寄存器,2.3.1 8086寄存器組,分類,數(shù)據(jù)寄存器:包括AX、BX、CX、DX四個16位的通用寄存器。 其中DX存放高字(高16位),AX存放低字(低16位)。數(shù)據(jù)寄存器中每個寄存器又可以分為2個8位的寄存器。分別為AH、AL,BH、BL,CH、CL,DH、DL。AH為高字節(jié)(高8位)寄存器、AL為低字節(jié)(低8位)寄存器。,數(shù)據(jù)寄存器,表示為(DX)=2
7、345H,(AX)=6789H,存放形式為:,例1 用DX、AX寄存器保存雙精度數(shù)23456789H。,例2 用AX寄存器存放一個字1234H,表示為(AX)=1234H,存放形式為:,地址寄存器,包括指針和變址寄存器SI、DI、SP、BP四個16位寄存器。顧名思義,它們可用來存放存儲器的偏移地址。另外,它們也可以作為通用寄存器用。嚴(yán)格地說,用來存放存儲器偏移地址的寄存器都應(yīng)該叫地址寄存器,如BX基址寄存器、IP指令指針寄存器等。,SI 源變址寄存器,可用于存放源緩沖區(qū)的偏移地址。 DI 目的變址寄存器,可用于存放目的緩沖區(qū)的偏移地址。,SP 堆棧指針寄存器,用于指出堆棧區(qū)的棧頂?shù)钠频刂贰?
8、BP 基址指針寄存器,用于指出堆棧區(qū)的某個單元的偏移地址。,CS 代碼段寄存器,用于指出存放程序的代碼段的段地址。 DS 數(shù)據(jù)段寄存器,用于指出存放數(shù)據(jù)的數(shù)據(jù)段的段地址。 ES 附加段寄存器,用于指出存放附加數(shù)據(jù)的附加段的段地址。 SS 堆棧段寄存器,用于指出堆棧區(qū)的堆棧段的段地址。,段寄存器,控制寄存器,溢出標(biāo)志,方向標(biāo)志,中斷標(biāo)志,陷阱標(biāo)志,符號標(biāo)志,零標(biāo)志,輔助進(jìn)位標(biāo)志,奇偶標(biāo)志,進(jìn)位標(biāo)志,IP指令指針寄存器:用來存放代碼段中的偏移地址,指出當(dāng)前正在執(zhí)行指令的下一條指令所在單元的偏移地址。,FLAGS標(biāo)志寄存器:其中的某位代表CPU的一個標(biāo)志,最低位為D0,最高位為D15。8086CPU
9、的標(biāo)志寄存器共有9個標(biāo)志,分別為6條件碼標(biāo)志和3控制標(biāo)志。其含義如下:,在DEBUG調(diào)試環(huán)境下以字母縮寫的形式表示各個標(biāo)志位的狀態(tài)。 進(jìn)入DEBUG后,用R命令查看寄存器狀態(tài)時,可以看到除了陷阱標(biāo)志以外的標(biāo)志位的狀態(tài)。如表2-1所示。,例1 兩個二進(jìn)制數(shù)相加運(yùn)算,有關(guān)標(biāo)志位自動發(fā)生變化。 10011010 + 01001011 11100101 CPU會自動地把標(biāo)志位設(shè)為:CF=0,SF=1,ZF=0,OF=0,即無進(jìn)位,結(jié)果為負(fù)數(shù),結(jié)果不為0,沒有溢出。,練習(xí):寫出下列二進(jìn)制運(yùn)算的結(jié)果以及標(biāo)志位的變化: (1) 10101110+00110011 (2) 11001101-10100011,
10、2.3.2 80X86寄存器組,Intel 8086、80286都是16位的寄存器。 從80386開始,寄存器擴(kuò)展為32位。,2.4 內(nèi)存儲器,2.4.1 物理地址與邏輯地址 1 地址 CPU對內(nèi)存的訪問是通過地址總線進(jìn)行 的,地址總線的每一個二進(jìn)制組態(tài)對應(yīng)一 個存儲單元,可作為該存儲單元的地址。 在80X86系統(tǒng)中一個實(shí)際的存儲單元只 存放8位二進(jìn)制數(shù),稱為字節(jié)單元。 地址位數(shù)與存儲空間有如下的關(guān)系 :,若系統(tǒng)只有1根地址線A0: 則A0上有兩個不同的信號0和1,可以表示0號和1號兩個存儲單元。 若系統(tǒng)有2根地址線A1、A0: 則有四個不同的信號組合00、01、10、11,可以表示0號3號四
11、個存儲單元。 若系統(tǒng)有10根地址線A9A0: 則有0號1023號不同組合,可以表示1024個存儲單元,尋址空間達(dá)到1KB。B(Byte)表示字節(jié)單元。 可以看出,若地址位數(shù)為n,則地址空間的大小為2n個存儲單元。,2物理地址,物理地址是內(nèi)存單元的真實(shí)地址。存儲單元的物理地址是唯一的。 Intel8086CPU有20根地址線,因此其存儲空間可達(dá)220=1M字節(jié)單元。在20位地址線的存儲空間中采用十六進(jìn)制表示的物理地址范圍是00000HFFFFFH。,3邏輯地址,邏輯地址是用戶編程時使用的地址,分為段地址和偏移地址兩部分。 在8086匯編語言中,把內(nèi)存地址空間劃分為若干邏輯段,每段由一些存儲單元構(gòu)
12、成。,用段地址指出是哪一段,偏移地址標(biāo)明是該段中的哪個單元。段地址和偏移地址都是16位二進(jìn)制數(shù)。 邏輯地址的形式: 段地址:偏移地址,例1 用十六進(jìn)制分別表示的三個邏輯地址如下: 3020:055AH 3021:054AH 2C43:432AH,4邏輯地址與物理地址的轉(zhuǎn)換,用戶編程時采用的邏輯地址在CPU執(zhí)行程序時都要轉(zhuǎn)換成實(shí)際的物理地址,這個轉(zhuǎn)換過程是由CPU中的地址加法器自動完成的。 轉(zhuǎn)換公式為: 物理地址=段地址10H+偏移地址,例1 若邏輯地址為3020:055AH,其物理地址=3020H10H+055AH=3075AH。,練習(xí): 根據(jù)給出的邏輯地址,計算物理地址。 邏輯地址= 2C4
13、3:432AH ,物理地址=? 2E37:9822H , 886F:7911H , 1234:05ACH ,,2.4.2 存儲單元,在匯編語言中,把存儲單元分為字節(jié)單元、字單元、雙字單元等,稱為存儲單元的屬性。 存儲單元中的數(shù)據(jù)稱為存儲單元內(nèi)容,存儲單元的地址和內(nèi)容的表示形式為用括號將地址括起來以代表單元的內(nèi)容。,如(3075AH)=12H 表示3075AH號單元中的內(nèi)容是12H (3075BH)=34H 表示3075BH號單元中的內(nèi)容是34H 若(37692H)=5678H 表示37692H單元和37693H單元一起存放5678H,在存儲的時候,高字節(jié)放在高地址單元,低字節(jié)放在低地址單元 。
14、如圖2-7所示。,圖2-7 存儲單元的地址和內(nèi)容,由于字單元是由兩個相鄰的字節(jié)單元構(gòu)成的,那么對于同一個地址而言,它既可以看成字節(jié)單元,又可以看成字單元。 如把圖2-7中的字節(jié)單元3075AH看成是字單元,則: (3075AH)=3412H,存儲單元還分為偶地址單元和奇地址單元。例如圖2-7中的字節(jié)單元3075AH和字單元37692H都是偶地址單元,而字節(jié)單元3075BH是奇地址單元。,練習(xí):有若干個數(shù)據(jù)需要存放在存儲單元中,請畫圖表示,并標(biāo)出存儲單元的屬性。 (23560H) =37H (23562H) =2D18H (23620H) =12345678H,2.4.3 存儲器分段,1分段的概
15、念 8086CPU的地址寄存器只有16位,如果直接從地址寄存器中發(fā)出地址信號,所能訪問的存儲空間就只有216=64KB,達(dá)不到20位地址線所提供的地址范圍。,將存儲器劃分為若干邏輯段,每段最大64K字節(jié)單元。 邏輯段的大小可變,每段最少16個字節(jié)單元,也可以100個、1000個到最大可達(dá)65536個字節(jié)單元。 段地址和偏移地址構(gòu)成邏輯地址。 例如:邏輯地址為1200:2650H。,在存儲器中,規(guī)定每16個字節(jié)單元為一小段,每小段的第一個單元的物理地址稱為小段的首地址,8086的1MB內(nèi)存空間的20位物理地址用十六進(jìn)制表示如下:,規(guī)定:存儲器分段時,各段的起始地址必須是小段的首地址,即邏輯段必須
16、從任一個小段的首單元開始,而不能從其它的字節(jié)單元開始。,小段首地址的共同的特點(diǎn)是十六進(jìn)制表示的物理地址的最低位都是0,如果把0去掉(二進(jìn)制的地址去掉4個0),就可以用16位段寄存器保存小段的首地址。,例1 定義2個段,第一個段的段地址為0002H,共16個單元;第二個段的段地址為4123H,共1024個單元。如圖標(biāo)出了各段首單元和末單元的邏輯地址。,每一個段內(nèi)的偏移地址都是從0000H開始的。 第一段的首單元的物理地址00020H,末單元的物理地址0002FH 第二段的首單元的物理地址為41230H,末單元的物理地址為4162FH。,2段的類型 8086匯編語言中把邏輯段分為四種類型,分別是代
17、碼段、數(shù)據(jù)段、附加段和堆棧段。 各段的邏輯地址對應(yīng)表:,例1段寄存器與其偏移地址如下,寫出其相應(yīng)的物理地址及含義。,CS=1896H,IP=1655H 當(dāng)前要執(zhí)行的指令的物理地址=18960H+1655H=19FB5H,DS=2896H,EA=1655H 當(dāng)前要訪問的數(shù)據(jù)的物理地址=28960H+1655H=29FB5H,ES=1896H,EA=2655H 當(dāng)前要訪問的數(shù)據(jù)的物理地址=18960H+2655H=1AFB5H,SS=1896H,SP=3655H 當(dāng)前要訪問的堆棧的物理地址=18960H+3655H=1BFB5H,例2 段寄存器與內(nèi)存的分段情況如圖。觀察各段的大小及分布,判斷其地址
18、范圍,標(biāo)出每個段首地址和末地址。,代碼段共64KB單元,它的地址范圍應(yīng)該是210E0H310DFH。 附加段只有2KB,地址范圍在34600H34CFFH之間。 數(shù)據(jù)段為16KB,其地址范圍為34D00H38CFFH。 堆棧段只有512個字節(jié)單元,它的地址范圍是84180H8437FH。,2.5 實(shí)例二 進(jìn)入計算機(jī),1DEBUG的主要命令 2進(jìn)入DOS 3. 進(jìn)入DEBUG,2.5.1 調(diào)試工具DEBUG,1DEBUG的主要命令 DEBUG命令有20多個,先學(xué)習(xí)最常用的命令。 R 查看和修改寄存器 D 查看內(nèi)存單元 E 修改內(nèi)存單元 U 反匯編,將機(jī)器指令變?yōu)閰R編指令 T /P單步執(zhí)行 G 連
19、續(xù)執(zhí)行程序 A 輸入?yún)R編指令 Q 退出,2進(jìn)入DOS DEBUG要先進(jìn)入DOS環(huán)境中再使用,在Windows下進(jìn)入DOS的方法可選擇兩種。 (1)在Windows桌面下單擊開始菜單,選擇運(yùn)行命令;在彈出的文本框中輸入cmd;按確定后進(jìn)入DOS環(huán)境 。 (2)選擇“開始程序附件命令提示符”進(jìn)入DOS。,(3)DOS命令 本書用到的簡單的DOS命令: cd 首先要用cd 退回到根目錄C下 dir 顯示文件列表 cd hb 進(jìn)入hb子目錄 cd . 退回到上一級目錄 e:進(jìn)入e盤 cls 清屏 DOS和DEBUG命令都支持大小寫。,3. 進(jìn)入DEBUG,DEBUG的提示符是小短線 ,在其后輸入命令。
20、 (1)R命令查看和修改寄存器 R命令有兩種用法: 直接鍵入R,將顯示CPU所有的寄存器和標(biāo)志位; 修改寄存器:在R后跟寫寄存器名,則先顯示寄存器的內(nèi)容,在冒號后可鍵入新的值,(2)D命令查看內(nèi)存單元 用D命令可以查看存儲單元的地址和內(nèi)容。 例如: D DS:0 查看數(shù)據(jù)段,從0號單元開始 D ES:0 查看附加段,從0號單元開始 D DS:100 查看數(shù)據(jù)段,從100H號單元開始 D 0200:5 15 查看0200H段的5號單元到15H號單元,D命令的執(zhí)行情況如圖所示。,(3)E命令修改內(nèi)存單元 用E命令可以改寫多個存儲單元的內(nèi)容。格式為:E 起始地址 修改值 修改值 例如:將數(shù)據(jù)段中的0
21、B05:3 0B05:5 三個單元的內(nèi)容修改為14、15、16。命令為 E DS:3 14 15 16 再如: E 10 修改當(dāng)前數(shù)據(jù)段10H號單元內(nèi)容 E ES:100 修改附加段100H號單元內(nèi)容,(4)U命令 反匯編 程序員編寫的匯編語言源程序經(jīng)過匯編(編譯)后生成了二進(jìn)制的機(jī)器指令代碼,而U命令可將二進(jìn)制的機(jī)器指令變?yōu)橹浄问降膮R編指令,因此稱之為“反匯編”。 多次鍵入U,可連續(xù)顯示后面的程序部分。 U后跟偏移地址,則從該地址開始反匯編。如: U 0 從代碼段0號單元開始反匯編 U100 從代碼段100H號單元開始反匯編,(5)A 命令輸入?yún)R編指令 在DEBUG中,使用A命令可以輸入?yún)R編指令,系統(tǒng)自動地將鍵入的匯編指令翻譯成機(jī)器代碼,并相繼地存放在從指定地址開始的存儲區(qū)中。 由于DEBUG下的數(shù)值默認(rèn)為十六進(jìn)制數(shù),因此先要將十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。 例如,第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度餐飲業(yè)知識產(chǎn)權(quán)保護(hù)合作協(xié)議范本6篇
- 2024版建筑加固施工合同書范本
- 2025年度清潔能源發(fā)電項(xiàng)目EPC總承包合同3篇
- 2024年度創(chuàng)新離婚合同:共同財產(chǎn)分割與子女成長保障3篇
- 職業(yè)學(xué)院教師專業(yè)技術(shù)職務(wù)低職高聘的規(guī)定
- 2024版商業(yè)活動免責(zé)條款合同版
- 2024年航空公司機(jī)票代理銷售合同標(biāo)的明確
- 2024年金融借款中介服務(wù)協(xié)議版
- 2024年風(fēng)光攝影版權(quán)協(xié)議3篇
- 2025年度專業(yè)比賽場地租賃及賽事組織服務(wù)合同3篇
- 簡約清新大氣餐飲行業(yè)企業(yè)介紹模板課件
- 氮?dú)庵舷⑹鹿拾咐?jīng)驗(yàn)分享
- 某公司年度生產(chǎn)經(jīng)營計劃書
- 廠房租賃合同標(biāo)準(zhǔn)版(通用10篇)
- 《教育心理學(xué)》教材
- 易制毒化學(xué)品安全管理制度(3篇)
- 建設(shè)單位業(yè)主方工程項(xiàng)目管理流程圖
- 斷裂力學(xué)——2Griffith理論(1)
- 風(fēng)電場崗位任職資格考試題庫大全-下(填空題2-2)
- 安全施工專項(xiàng)方案報審表
- 學(xué)習(xí)解讀2022年新制定的《市場主體登記管理?xiàng)l例實(shí)施細(xì)則》PPT匯報演示
評論
0/150
提交評論