2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、0,主講人 劉雪潔,Assembly Language Programming,,匯編語(yǔ)言程序設(shè)計(jì),1,課程介紹,匯編語(yǔ)言程序設(shè)計(jì)課程是國(guó)家教育部所屬高等院校計(jì)算機(jī)軟硬件專(zhuān)業(yè)的專(zhuān)業(yè)基礎(chǔ)課、必修課。 作為一種低級(jí)語(yǔ)言,匯編語(yǔ)言是高級(jí)語(yǔ)言程序設(shè)計(jì)的基礎(chǔ),通常被視為微型計(jì)算機(jī)的又一核心內(nèi)容。雖然現(xiàn)今大量問(wèn)題都可應(yīng)用高級(jí)語(yǔ)言編程,但匯編語(yǔ)言是能夠利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的惟一語(yǔ)言,對(duì)于直接控制硬件的應(yīng)用場(chǎng)合或若

2、干實(shí)時(shí)處理與控制的應(yīng)用開(kāi)發(fā)項(xiàng)目,匯編語(yǔ)言具有明顯的優(yōu)勢(shì)。,2,使用教材,沈美明、溫冬嬋編著《IBM-PC匯編語(yǔ)言程序設(shè)計(jì)(第2版)》清華大學(xué)出版社 2001年參考:[1]王爽編著《匯編語(yǔ)言》 清華大學(xué)出版社 2003年[2]錢(qián)曉捷編著《匯編語(yǔ)言程序設(shè)計(jì)》 電子工業(yè)出版社 2003年,3,教學(xué)內(nèi)容,第1章 匯編語(yǔ)言基礎(chǔ)知識(shí)第2章 80x86的指令系統(tǒng)第3章 匯編語(yǔ)言程序格式第4章 基本匯編語(yǔ)

3、言程序設(shè)計(jì)第5章 高級(jí)匯編語(yǔ)言程序設(shè)計(jì),4,第1章 匯編語(yǔ)言基礎(chǔ)知識(shí),1.1 匯編語(yǔ)言及意義1.2 數(shù)據(jù)編碼與運(yùn)算1.3 數(shù)據(jù)表示1.4 80x86CPU和寄存器組1.5 存儲(chǔ)器和端口,5,1.1.1機(jī)器語(yǔ)言 計(jì)算機(jī)能夠直接識(shí)別的數(shù)據(jù)是由二進(jìn)制數(shù)0和1組成的代碼。 機(jī)器指令就是用二進(jìn)制代碼組成的指令,一條機(jī)器指令控制計(jì)算機(jī)完成一個(gè)基本操作。

4、 用機(jī)器語(yǔ)言編寫(xiě)的程序是計(jì)算機(jī)惟一能夠直接識(shí)別并執(zhí)行的程序,而用其他語(yǔ)言編寫(xiě)的程序必須經(jīng)過(guò)翻譯才能變換成機(jī)器語(yǔ)言程序。,1.1 匯編語(yǔ)言及意義,返回本章,6,1.1.2匯編語(yǔ)言 匯編語(yǔ)言是一種用符號(hào)書(shū)寫(xiě)的、基本操作與機(jī)器指令相對(duì)應(yīng)的、并遵循一定語(yǔ)法規(guī)則的計(jì)算機(jī)語(yǔ)言。 匯編語(yǔ)言是一種符號(hào)語(yǔ)言,比機(jī)器語(yǔ)言容易理解和掌握,也容易調(diào)試和維護(hù)。 但對(duì)于匯編語(yǔ)言

5、編寫(xiě)的程序必須經(jīng)過(guò)匯編和連接之后,才能在計(jì)算機(jī)上執(zhí)行。,返回本節(jié),返回本章,7,用匯編語(yǔ)言編寫(xiě)的程序稱(chēng)為匯編源程序。采用微機(jī)中任何一個(gè)文本編輯器編寫(xiě)匯編語(yǔ)言源程序。 匯編程序可將匯編語(yǔ)言源程序翻譯成機(jī)器代碼目標(biāo)模塊。 80x86CPU的匯編程序主要有微軟的宏匯編程序MASM。較著名的還有Borland公司的TASM,無(wú)實(shí)質(zhì)差別。,返回本節(jié),返回本章,8,連接程序?qū)R編后的目標(biāo)模塊轉(zhuǎn)換為可執(zhí)行程序。連接程序的文件名

6、通常是:LINK.EXE。,返回本節(jié),返回本章,9,1.1.3高級(jí)語(yǔ)言 高級(jí)程序設(shè)計(jì)語(yǔ)言接近于人類(lèi)自然語(yǔ)言的語(yǔ)法習(xí)慣,與計(jì)算機(jī)硬件無(wú)關(guān),易被用戶(hù)掌握和使用。1.1.4匯編語(yǔ)言特點(diǎn)匯編語(yǔ)言程序與處理器指令系統(tǒng)密切相關(guān)。程序員可直接、有效地控制系統(tǒng)硬件。形成的可執(zhí)行文件運(yùn)行速度快、占用主存容量少。,返回本節(jié),返回本章,10,1.2 數(shù)據(jù)編碼與運(yùn)算,1.2.1各種進(jìn)位計(jì)數(shù)制 (1)十進(jìn)制計(jì)數(shù) 十進(jìn)制數(shù)的

7、基數(shù)為10,采用數(shù)字0、1、2、3、4、5、6、7、8、9共10個(gè)數(shù)碼來(lái)計(jì)數(shù)。每位數(shù)字的10k為該位數(shù)字的權(quán)。 例: (795.412)10 = 7×102+9×101+5×100+4×10-1+1×10-2+2×10-3,返回本章,11,(2)二進(jìn)制計(jì)數(shù) 二進(jìn)制數(shù)的基數(shù)為2,只有0、1兩個(gè)數(shù)碼,并遵循逢2進(jìn)1的規(guī)則,它的各位權(quán)是以2k表示的。

8、 例: (11.1001)2 = 1×21+1×20+1×2-1+0×2-2+0×2-3+1×2-4n位二進(jìn)制數(shù)可以表示2n個(gè)數(shù),例如3位二進(jìn)制數(shù)可以表示8個(gè)數(shù),即000-111。4位二進(jìn)制數(shù)則表示16個(gè)數(shù),即0000-1111。,返回本節(jié),返回本章,12,(3)八進(jìn)制和十六進(jìn)制計(jì)數(shù) 為便于閱讀及書(shū)寫(xiě),經(jīng)常使用八進(jìn)制數(shù)和十六進(jìn)制數(shù)來(lái)表示二進(jìn)制數(shù)

9、。八進(jìn)制的基數(shù)為8,數(shù)碼為0、1 、2、3、4、5、6、7。十六進(jìn)制數(shù)的基數(shù)為16,數(shù)碼為0、1 、2、3、4、5、6、7 、8、9、A、B、C 、D、E、F。按同樣的方法,可以容易掌握八進(jìn)制和十六進(jìn)制的表示方法。 十進(jìn)制數(shù)結(jié)尾一般用D、二進(jìn)制數(shù)用B、八進(jìn)制數(shù)用O、十六進(jìn)制數(shù)H。如:117D、1010B,67O,1ABH,…。,返回本節(jié),返回本章,13,1.2.2數(shù)制的轉(zhuǎn)換 (1)十進(jìn)制與二、八、十六進(jìn)制間轉(zhuǎn)

10、換 將十進(jìn)制數(shù)轉(zhuǎn)換成二、八、十六進(jìn)制數(shù)的方法:將數(shù)分成整數(shù)部分和小數(shù)部分,整數(shù)部分采用除基取余法,小數(shù)部分采用乘基取整法分別進(jìn)行轉(zhuǎn)換。例:76.425D=1001100.011011B,商 余數(shù)76÷2=38 038÷2=19 019÷2=9 19÷2=4 14÷2=2

11、 02÷2=1 01÷2=0 1,乘積 整數(shù)0.425×2=0.850 00.85×2=1.70 10.7×2=1.4 10.4×2=0.8 00.8×2=1.6 10.6×2=1.2 1,,,返回本節(jié),

12、返回本章,14,例:將十進(jìn)制數(shù) 76.125轉(zhuǎn)換成十六進(jìn)制數(shù)。 商 余數(shù) 乘積 整數(shù)部分76÷16=4 C(12) 0.125×16=2.0 24÷16=0 4 轉(zhuǎn)換結(jié)果為:76.125 = 4C.2H,,,返回本節(jié),返回

13、本章,15,將二、八、十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的方法:各位數(shù)碼與其對(duì)應(yīng)權(quán)的積再求和即為該進(jìn)制數(shù)相對(duì)應(yīng)的十進(jìn)制數(shù)。 例: 101.11B = 5.75D B56.D7H=2902.839844D 。 計(jì)算過(guò)程: 101.11B = 1×22+0×21+1×20+1×2-1+1×2-2 = 4+1+0.5+0.25 = 5.

14、75D B56.D7H = B×162+5×161+6×160+D×16-1+7×16-2 = 2816+80+6+0.8125+0.027344 = 2902.839844,返回本節(jié),返回本章,16,轉(zhuǎn)換過(guò)程:101111010 . 0111001B = 0001 0111 1010 . 0111 0010B = 17A.72HB

15、56.D7H  = 1011 0101 0110 . 1101 0111B,(2)二進(jìn)制與八、十六進(jìn)制間轉(zhuǎn)換 將二進(jìn)制數(shù)轉(zhuǎn)換成八(十六)進(jìn)制數(shù)的方法:一個(gè)二制數(shù)從小數(shù)點(diǎn)向兩個(gè)方向每3位(4位)劃為一組(位數(shù)不夠補(bǔ)零),然后每組用八(十六)進(jìn)制數(shù)表示就可以了。反之,把八(十六)進(jìn)制數(shù)每一位用3位(4位)二進(jìn)制數(shù)表示,就形成相應(yīng)的二進(jìn)制數(shù)了。 例:101111010 .

16、0111001B=17A.72H B56.D7H = 1011 0101 0110 . 1101 0111B,返回本節(jié),返回本章,17,1.2.3數(shù)據(jù)運(yùn)算 (1)二進(jìn)制數(shù)運(yùn)算 二進(jìn)制加法運(yùn)算規(guī)則:逢2進(jìn)1。 即 :0+0=0 0+1=1 1+0=1 1+1=0 產(chǎn)生進(jìn)位1 二進(jìn)制減法運(yùn)算規(guī)則:借1作2。 即

17、:0-0=0 0-1=1產(chǎn)生借位1 1-0=1 1-1=0,返回本節(jié),返回本章,18,二進(jìn)制乘法運(yùn)算與十進(jìn)制乘法運(yùn)算類(lèi)似即 :0×0=0 0×1=0 1×0=0 1×1=1 (2)十六進(jìn)制運(yùn)算 加法:當(dāng)兩個(gè)一位數(shù)之和S小于16時(shí),與十進(jìn)制同樣處理,如果S大于或等于16,則應(yīng)用S

18、-16及進(jìn)位1取代S。 減法:與十進(jìn)制類(lèi)似,夠減時(shí)可直接相減,不夠減時(shí)服從向高位借1為16的規(guī)則。 乘法:可用十進(jìn)制乘法的規(guī)則來(lái)計(jì)算,但結(jié)果必須用十六進(jìn)制數(shù)來(lái)表示。,返回本節(jié),返回本章,19,例:,0 5 C 3 H 3 D 2 5 H +3 D 2 5 H - 0 5 C 3 H 4

19、2 E 8 H 3 7 6 2 H 0 5 C 3 H ×0 0 A 1 H 0 5 C 3 + 3 9 9 E 3 9 F A 3 H,,,,,,,返回本節(jié),返回本章,20,1.3 數(shù)據(jù)表示,1.3.1數(shù)值數(shù)據(jù) 數(shù)值數(shù)據(jù)分為有符號(hào)數(shù)和

20、無(wú)符號(hào)數(shù)。無(wú)符號(hào)數(shù)最高位表示數(shù)值,而有符號(hào)數(shù)最高位表示符號(hào)。有符號(hào)數(shù)有不同的編碼方式,常用的是補(bǔ)碼。,返回本章,21,(1)原碼: 最高位表示符號(hào)(正數(shù)用0,負(fù)數(shù)用1),其它位為該數(shù)的二進(jìn)制數(shù)值,稱(chēng)為有符號(hào)數(shù)的原碼表示。 【例】 X=45D=00101101B [X]原= 00101101B X=-45D [X]原=10101101B 原

21、碼表示簡(jiǎn)單易懂,但若是兩個(gè)異號(hào)數(shù)相加(或兩個(gè)同號(hào)數(shù)相減),就要做減法。為了把減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算就引進(jìn)了反碼和補(bǔ)碼。,返回本節(jié),返回本章,22,(2)反碼: 正數(shù)的反碼與原碼相同,符號(hào)位用0表示,數(shù)值位不變。負(fù)數(shù)的反碼符號(hào)位用1表示, 數(shù)值位為原碼數(shù)值位按位取反形成,即0變1、1變0?! 纠縓=45D=00101101B, [X]反=00101101B X=-45D

22、 [X]反=11010010B(3)補(bǔ)碼: 正數(shù)的補(bǔ)碼與原碼相同,即符號(hào)位用0表示,數(shù)值位不變。負(fù)數(shù)的補(bǔ)碼為反碼加1形成?! 纠縓=45D=00101101B [X]補(bǔ)=00101101B   X=-45 D [X]補(bǔ)=11010011B,返回本節(jié),返回本章,23,(4)符號(hào)擴(kuò)展:   在數(shù)據(jù)處理

23、時(shí),有時(shí)需要把8位二進(jìn)制數(shù)擴(kuò)展成16位二進(jìn)制數(shù)。   當(dāng)要擴(kuò)展的數(shù)是無(wú)符號(hào)數(shù)時(shí),可在最高位前擴(kuò)展8個(gè)0?!  ∪绻獢U(kuò)展的數(shù)是補(bǔ)碼形式的有符號(hào)數(shù),那么就要進(jìn)行符號(hào)位的擴(kuò)展。符號(hào)擴(kuò)展后,其結(jié)果仍是該數(shù)的補(bǔ)碼。,返回本節(jié),返回本章,24,(5)數(shù)據(jù)的表示范圍和大小  n位二進(jìn)制數(shù)能表示的無(wú)符號(hào)整數(shù)的范圍是:   0 ≤I ≤ 2n-1;  n位二進(jìn)制數(shù)能表示的有符號(hào)整數(shù)的范圍是:   -2n-1≤I≤+2n-1-1(6)補(bǔ)碼的

24、加法和減法  補(bǔ)碼的特性: [X]補(bǔ)==> [-X]補(bǔ)==> [X]補(bǔ)  補(bǔ)碼的加法規(guī)則:[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)  補(bǔ)碼的減法規(guī)則: [X-Y]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ),返回本節(jié),返回本章,求補(bǔ),求補(bǔ),25,1.3.2字符數(shù)據(jù):(1)ASCII碼:   標(biāo)準(zhǔn)ASCII碼用7位二進(jìn)制數(shù)編碼,共有128個(gè)。 計(jì)算機(jī)存儲(chǔ)器基本單位為8位,ASCII

25、碼的最高位通常為0,通信時(shí),最高位用作奇偶校驗(yàn)位?!  ?常用字符的ASCII碼: 數(shù)字'0'~'9':30H~39H 字母'A'~'Z':41H~5AH 字母'a'~'z':61H~7AH 空格:20H 回車(chē)CR:0DH

26、 換行LF:0AH 注意回車(chē)與換行的差別: CR用來(lái)控制光標(biāo)回到當(dāng)前行的最左端;LF用來(lái)移動(dòng)光標(biāo)到下一行,而所在列不變。,返回本節(jié),返回本章,26,(2) BCD碼:  雖然二進(jìn)制數(shù)實(shí)現(xiàn)容易,但不符合人們的使用習(xí)慣,且書(shū)寫(xiě)閱讀不方便,所以在計(jì)算機(jī)輸入輸出時(shí)通常還是采用十進(jìn)制來(lái)表示數(shù),這就需要實(shí)現(xiàn)十進(jìn)制與二進(jìn)制間的轉(zhuǎn)換?!  榱宿D(zhuǎn)換方便,常采用二進(jìn)制編碼的十進(jìn)制,簡(jiǎn)稱(chēng)為BCD碼。,返回本節(jié)

27、,返回本章,27,壓縮BCD碼:以4個(gè)二進(jìn)制位表示1個(gè)十進(jìn)制位,用0000B~1001B表示0~9。 例如,十進(jìn)制數(shù)6429的壓縮BCD碼表示為0110 0100 0010 1001 B(即6429H)非壓縮BCD碼:以8個(gè)二進(jìn)制位表示1個(gè)十進(jìn)制位,低4位與壓縮BCD碼相同,高4位無(wú)意義。 例如,十進(jìn)制數(shù)6429的非壓縮BCD碼表示為xxxx0110 xxxx0100 xxxx0010 xxxx1001 B

28、有時(shí),要求非壓縮BCD碼的高4位為0,這時(shí),6429的非壓縮BCD碼為06040209H。,返回本節(jié),返回本章,28,1.4 80x86CPU和寄存器組,計(jì)算機(jī)硬件: 中央處理單元 CPU(Intel 80x86)對(duì)匯編語(yǔ)言程序員,最關(guān)心其中的寄存器 存儲(chǔ)器(主存儲(chǔ)器)呈現(xiàn)給匯編語(yǔ)言程序員的,是存儲(chǔ)器地址 外部設(shè)備(接口電路)匯編語(yǔ)言程序員看到的是端口(I/O地址),返回本章,29,1.4.1 80x

29、86CPU    計(jì)算機(jī)執(zhí)行程序時(shí),首先要將其裝入內(nèi)存,然后由CPU執(zhí)行程序指令。CPU的作用: 執(zhí)行算術(shù)與邏輯運(yùn)算, 控制指令的執(zhí)行。   通常,將Intel公司生產(chǎn)的8086/8088、80286、80386、80486、Pentium、Pentium Pro、Pentium II、Pentium III、Pentium 4 及其兼容的CPU,統(tǒng)稱(chēng)為80x86 CPU或x86 CPU,將基于這些CPU的計(jì)算機(jī),稱(chēng)

30、為80x86計(jì)算機(jī)或x86計(jì)算機(jī)。 其中,8086CPU是Intel公司于1978年推出的16位微處理器,時(shí)鐘頻率為5MHz,有16位數(shù)據(jù)信號(hào)線(xiàn),20位地址信號(hào)線(xiàn),可尋址的內(nèi)存地址空間為1MB。,返回本章,30,80x86CPU的3種工作模式 1.實(shí)模式:與8086兼容的工作模式,只有低20位地址線(xiàn)起作用,僅能尋址第一個(gè)1MB的內(nèi)存空間。MS DOS運(yùn)行在實(shí)模式下。 2.保護(hù)模式:32位80x86

31、CPU的主要工作模式,提供對(duì)程序和數(shù)據(jù)進(jìn)行安全檢查的保護(hù)機(jī)制。Windows 9x/NT/2000運(yùn)行在保護(hù)模式下。 3.虛擬8086模式:在Windows 9x下,若打開(kāi)一個(gè)MS DOS窗口,運(yùn)行一個(gè)DOS應(yīng)用程序,那么該程序就運(yùn)行在虛擬8086模式下。,返回本節(jié),返回本章,31,,1.4.2 80x86寄存器組,8086寄存器組,返回本節(jié),返回本章,32,1.通用寄存器,(1)數(shù)據(jù)寄存器  8位數(shù)據(jù)寄存器8個(gè)

32、:AL、AH、BL、BH、CL、CH、DL、DH。 16位數(shù)據(jù)寄存器4個(gè):AX、BX、CX、DX。 32位數(shù)據(jù)寄存器4個(gè):EAX、EBX、ECX、EDX。 AL與AH、BL與BH、CL與CH、DL與DH分別對(duì)應(yīng)于AX、BX、CX和DX的低8位與高8位。AX、BX、CX和DX分別對(duì)應(yīng)于EAX、EBX、ECX和EDX的低16位。,返回本節(jié),返回本章,33,AX寄存器稱(chēng)為累加器。使用頻度最

33、高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等。BX寄存器稱(chēng)為基址寄存器。常用于存放存儲(chǔ)器地址。CX寄存器稱(chēng)為計(jì)數(shù)器。一般作為循環(huán)或串操作等指令中的隱含計(jì)數(shù)器。DX寄存器稱(chēng)為數(shù)據(jù)寄存器。常用來(lái)存放雙字?jǐn)?shù)據(jù)的高16位,或存放外設(shè)端口地址。,返回本節(jié),返回本章,34,變址和指針寄存器包括SI、DI、SP、BP4個(gè)16位寄存器和ESI、EDI、ESP、EBP4個(gè)32位寄存器,主要用于存放某個(gè)存儲(chǔ)單元的偏移地址。其中SI、DI、BP和

34、SP分別對(duì)應(yīng)于ESI、EDI、EBP和ESP的低16位。 。SI是源變址寄存器,DI是目的變址寄存器,在字符串操作中,SI和DI都具有自動(dòng)增量或減量的功能。 SP為堆棧指針寄存器,用于存放當(dāng)前堆棧段中棧頂?shù)钠频刂罚籅P為基址指針寄存器,用于存放堆棧段中某一存儲(chǔ)單元的偏移地址。,(2)變址和指針寄存器,返回本節(jié),返回本章,35,2.段寄存器,80x86CPU的6個(gè)16位的段寄存器分別稱(chēng)為代碼段寄存器CS,數(shù)據(jù)段寄存器DS,堆棧段寄

35、存器SS,附加數(shù)據(jù)段寄存器ES及80386起增加的FS、GS兩個(gè)段寄存器。段寄存器用來(lái)確定該段在內(nèi)存中的起始地址。代碼段用來(lái)存放程序的指令序列。CS存放代碼段的段首址,指令指針寄存器IP指示代碼段中指令的偏移地址。,返回本節(jié),返回本章,36,3.指令指針,8086CPU中的16位指令指針I(yè)P,總是保存下一次將要從主存中取出的指令的偏移地址,偏移地址的值為該指令到所在段段首址的字節(jié)距離。在目標(biāo)程序運(yùn)行時(shí),IP的內(nèi)容由微處理器硬件自動(dòng)設(shè)

36、置,程序不能直接訪(fǎng)問(wèn)IP,但一些指令卻可改變IP的值,如轉(zhuǎn)移指令、子程序調(diào)用指令等。EIP是80386起增加的32位指令寄存器,IP是EIP的低16位。,返回本節(jié),返回本章,37,4.標(biāo)志寄存器,狀態(tài)標(biāo)志通常由CPU根據(jù)指令執(zhí)行結(jié)果自動(dòng)設(shè)置,以反映指令執(zhí)行結(jié)果的特征。 80x86 CPU將狀態(tài)標(biāo)志作為條件判斷的依據(jù),以控制程序的執(zhí)行流程。FLAGS是8086CPU中一個(gè)很重要的16位標(biāo)志寄存器,它包含9個(gè)標(biāo)志位,主要用于保存一條指

37、令執(zhí)行后,CPU所處狀態(tài)信息及運(yùn)算結(jié)果的特征。主要包括條件標(biāo)志和狀態(tài)控制標(biāo)志。,返回本節(jié),返回本章,38,1.條件標(biāo)志,(1)零標(biāo)志ZF:若運(yùn)算結(jié)果為0,則ZF = 1,否則ZF = 0。(2)符號(hào)標(biāo)志SF:若運(yùn)算結(jié)果為負(fù)數(shù),則SF=1,否則SF=0。(3)進(jìn)位標(biāo)志CF:若加法時(shí)結(jié)果最高位向前有進(jìn)位或減法時(shí)最高位向前有借位,則CF = 1,否則CF = 0。(4)溢出標(biāo)志OF:若帶符號(hào)數(shù)的運(yùn)算結(jié)果超出了補(bǔ)碼表示的范圍,則OF =

38、1,否則OF = 0。(5)輔助進(jìn)位標(biāo)志AF:若加法時(shí)結(jié)果低4位向前有進(jìn)位或減法時(shí)結(jié)果低4位向前有借位,則AF=1,否則AF=0。(6)奇偶標(biāo)志PF:若結(jié)果操作數(shù)中1的個(gè)數(shù)為偶數(shù),則PF = 1,否則PF = 0。,返回本節(jié),返回本章,39,深入認(rèn)識(shí)CF和OF CF和OF本質(zhì)上均表示溢出。 CF表示無(wú)符號(hào)溢出,即運(yùn)算結(jié)果超出了無(wú)符號(hào)數(shù)的表示范圍。對(duì)于n位二進(jìn)制數(shù)來(lái)說(shuō),無(wú)符號(hào)數(shù)表示范圍為0~2n-1,例如: n = 8和

39、16時(shí)分別為0~255和0~65535。 OF表示帶符號(hào)溢出,即運(yùn)算結(jié)果超出了帶符號(hào)數(shù)的表示范圍。對(duì)于n位二進(jìn)制數(shù)來(lái)說(shuō),帶符號(hào)數(shù)表示范圍為-2n-1~2n-1-1,例如,n = 8和16時(shí),分別為-128~127和 -32768~32767。,返回本節(jié),返回本章,40,2.狀態(tài)控制標(biāo)志,(1)方向標(biāo)志DF:當(dāng)DF=1時(shí),每次操作后變址寄存器SI和DI減小,這樣使串處理從高地址向低地址方向處理;當(dāng)DF=0時(shí),則使SI和DI增大。

40、(2)中斷允許標(biāo)志IF:當(dāng)IF=1時(shí),允許CPU響應(yīng)可屏蔽中斷請(qǐng)求,否則關(guān)閉中斷。(3)追蹤標(biāo)志TF:用于調(diào)試時(shí)的單步方式操作。當(dāng)TF=1時(shí),每條指令執(zhí)行完后產(chǎn)生陷阱,由系統(tǒng)控制計(jì)算機(jī);當(dāng)TF=0時(shí),CPU正常工作,不產(chǎn)生陷阱。,返回本節(jié),返回本章,41,1.5 存儲(chǔ)器和端口,1.5.1 存儲(chǔ)器 存儲(chǔ)器是計(jì)算機(jī)的記憶部件,用來(lái)存放程序和數(shù)據(jù)。按所在的位置,存儲(chǔ)器可以分成主存儲(chǔ)器和輔助存儲(chǔ)器。

41、 主存儲(chǔ)器存放當(dāng)前正在執(zhí)行的程序和使用的數(shù)據(jù),CPU可以直接存取,它由半導(dǎo)體存儲(chǔ)器芯片構(gòu)成,其成本高,容量小,但速度快。 輔助存儲(chǔ)器可用來(lái)長(zhǎng)期保存大量程序和數(shù)據(jù),CPU需要通過(guò)I/O接口訪(fǎng)問(wèn),它由磁盤(pán)或光盤(pán)構(gòu)成,其成本低,容量大,但速度較慢。,返回本章,42,1.5.2 存儲(chǔ)器單元的地址和內(nèi)容 計(jì)算機(jī)中信息的單位: 位(Bit):計(jì)算機(jī)中存儲(chǔ)信息的基本

42、單位,可存儲(chǔ)一個(gè)二進(jìn)制數(shù):0或1。 字節(jié)(Byte):8位二進(jìn)制位。位編號(hào)從右到左為0~7,第0位為最低位,第7位為最高位。 字(Word):16位二進(jìn)制位,2個(gè)字節(jié)。位編號(hào)從右到左為0~15,第0位為最低位,第15位為最高位。位0~7為低字節(jié),位8~15為高字節(jié)。 雙字(Double Word):32位二進(jìn)制位,4個(gè)字節(jié)。位編號(hào)從右到左為0~31

43、,第0位為最低位,第31位為最高位。位0~15為低字,位16~31為高字。,返回本節(jié),返回本章,43,左圖表明了存儲(chǔ)器中部分存儲(chǔ)單元存放信息情況。從圖可看到,地址為34560H的字節(jié)的存儲(chǔ)單元中的內(nèi)容是34H,而地址為34561H的字節(jié)存儲(chǔ)單元中的內(nèi)容是12H,表示為: (34560H)=34H (34561H)=12H 若從存儲(chǔ)單元中取一個(gè)詞,則高地址內(nèi)容在高字節(jié)。例: (345

44、60H)字=1234H,,返回本節(jié),返回本章,存儲(chǔ)單元地址 :為了標(biāo)識(shí)和存取每一個(gè)存儲(chǔ)單元,給每個(gè)存儲(chǔ)單元規(guī)定一個(gè)編號(hào),這就是存儲(chǔ)單元地址。 在存儲(chǔ)器里以字節(jié)為單位存儲(chǔ)信息,一個(gè)字節(jié)有惟一的地址。 存儲(chǔ)單元的內(nèi)容 :一個(gè)存儲(chǔ)單元中存放的信息稱(chēng)為該存儲(chǔ)單元的內(nèi)容。,44,1.5.3 物理地址的形成 實(shí)模式下允許最大尋址空間為1MB。8086/8088 CPU的地址線(xiàn)是20位的,這樣最大可尋址空間應(yīng)為2

45、20=1MB,其物理地址范圍從00000H~FFFFFH。而8086CPU寄存器都是16位的。那么,這1MB空間如何用16位寄存器表達(dá)呢? 根據(jù)要求可把1M字節(jié)地址空間劃成若干邏輯段。每個(gè)邏輯段必須滿(mǎn)足兩個(gè)條件:一是邏輯段的起始地址(簡(jiǎn)稱(chēng)段首址)必須是16的倍數(shù);二是邏輯段的最大長(zhǎng)度為64KB。按照這兩個(gè)條件,1M字節(jié)地址空間最多可劃分成64K個(gè)邏輯段,最少也要?jiǎng)澐殖?6個(gè)邏輯段。邏輯段與邏輯段可以相連,也可以不連,還

46、可以重疊。,返回本節(jié),返回本章,45,物理地址與邏輯地址 物理地址:內(nèi)存單元的實(shí)際地址,也就是出現(xiàn)在地址總線(xiàn)上的地址。 邏輯地址(分段地址):段地址: 段內(nèi)偏移地址 段地址表示段在內(nèi)存中的起始位置,通常被保存在某個(gè)段寄存器中。段內(nèi)偏移地址表示內(nèi)存單元相對(duì)于段起始位置的位移,簡(jiǎn)稱(chēng)偏移地址,也叫有效地址EA。 段地址與偏移地址都是16位。 系統(tǒng)采

47、用下列方法將邏輯地址自動(dòng)轉(zhuǎn)換為20位的物理地址: 物理地址 = 段地址 × 16 + 偏移地址 例:邏輯地址為 2E00H:1246H 物理地址=2E00H×16+1246H=2E000H+1246H =2F246H 每個(gè)內(nèi)存單

48、元具有唯一的物理地址,但可由不同的邏輯地址描述。,返回本節(jié),返回本章,46,1.5.4 端口 對(duì)程序員來(lái)說(shuō),I/O接口電路由接口寄存器組成,為了區(qū)別它們,各個(gè)寄存器進(jìn)行了編號(hào),形成I/O地址。端口就是指I/O地址,是微機(jī)系統(tǒng)對(duì)I/O接口電路中與程序設(shè)計(jì)有關(guān)的寄存器的編號(hào)系統(tǒng)實(shí)際上就是通過(guò)這些端口與外設(shè)進(jìn)行通訊的通常采用十六進(jìn)制數(shù)來(lái)表達(dá)端口Intel 8086支持64K個(gè)8位端口其I/O地址可以表示為

49、:0000H ~ FFFFH,返回本節(jié),返回本章,47,本章小結(jié),匯編語(yǔ)言是機(jī)器語(yǔ)言的符號(hào)表示,與機(jī)器語(yǔ)言無(wú)本質(zhì)區(qū)別。計(jì)算機(jī)系統(tǒng)使用2進(jìn)制表示數(shù)據(jù)。為了描述方便,書(shū)寫(xiě)時(shí)常采用16進(jìn)制形式。 數(shù)值數(shù)據(jù)分無(wú)符號(hào)數(shù)和有符號(hào)數(shù)兩種。有符號(hào)數(shù)具有原碼、反碼和補(bǔ)碼三種編碼。以補(bǔ)碼表示的帶符號(hào)數(shù)在基于不同位數(shù)時(shí),其二進(jìn)制形式可能完全不同。 字符數(shù)據(jù)常用編碼有ASCII碼和BCD碼。,返回本章,48,80x86計(jì)算機(jī)由CPU、內(nèi)存和I/O子系統(tǒng)三

50、部分組成,各部分之間由系統(tǒng)總線(xiàn)相連。 80x86程序可以存取的最小數(shù)據(jù)單位是字節(jié)。例如,若要讀取的位數(shù)不足8位,則只能先讀出一個(gè)完整字節(jié),再屏蔽掉其它位。 字的存儲(chǔ)采取“低字節(jié)在低地址,高字節(jié)在高地址,字的地址由低地址表示”的方式,雙字也類(lèi)似。 要正確理解內(nèi)存單元的地址和值,地址表示位置,值是相應(yīng)位置處的內(nèi)容。同一地址既可以看作字節(jié)單元地址,也可以看作字甚至雙字單元地址,取決于具體的使用方式。,返回本章,49,80x86 CPU具

51、有8位、16位和32位寄存器。 8位通用寄存器8個(gè):AH、AL、BH、BL、CH、CL、DH、DL。 16位通用寄存器8個(gè):AX、BX、CX、DX、SI、DI、BP、SP。 32位通用寄存器8個(gè):EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。 16位段寄存器6個(gè):CS、DS、SS、ES、FS、GS。 32位/16位指令指針1個(gè):EIP/IP。

52、 32位/16位標(biāo)志寄存器1個(gè):EFLAGS/FLAGS。 其中,32位寄存器是80386 CPU開(kāi)始引入的。,返回本章,50,80x86 CPU有3種工作模式:實(shí)模式、保護(hù)模式和虛擬8086模式。 在實(shí)模式下,段地址和偏移地址均為16位。20位物理地址由16位段地址左移4位加16位偏移地址得到,只能尋址1MB的內(nèi)存空間,且每段≤64KB。 在實(shí)模式、32位CPU下的程序可以使用32位寄存器和32位操作數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論