《IBM-PC匯編語(yǔ)言》-全書3課時(shí)省公開(kāi)課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第1頁(yè)
《IBM-PC匯編語(yǔ)言》-全書3課時(shí)省公開(kāi)課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第2頁(yè)
《IBM-PC匯編語(yǔ)言》-全書3課時(shí)省公開(kāi)課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第3頁(yè)
《IBM-PC匯編語(yǔ)言》-全書3課時(shí)省公開(kāi)課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第4頁(yè)
《IBM-PC匯編語(yǔ)言》-全書3課時(shí)省公開(kāi)課金獎(jiǎng)全國(guó)賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件_第5頁(yè)
已閱讀5頁(yè),還剩375頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《IBM-PC匯編語(yǔ)言程序設(shè)計(jì)》巢湖學(xué)院計(jì)算機(jī)系教材主編:沈美名溫冬蟬主講教師:江家寶主講手機(jī)講Email:jiangjiabao12032@163.com

jjb12032@歡迎在座各位常與我交流!1/380教學(xué)日歷:第01講(第01周):基礎(chǔ)知識(shí)第02講(第02周):80×86計(jì)算機(jī)組織第03講(第03周):80×86尋址方式第04講(第04周):數(shù)據(jù)傳送類指令第05講(第05周):算術(shù)指令、邏輯指令和串處理指令第06講(第06周):控制轉(zhuǎn)移指令和處理機(jī)控制與雜項(xiàng)操作指令第07講(第07周):匯編語(yǔ)言程序格式第08講(第08周):循環(huán)與分支程序設(shè)計(jì)方法第09講(第09周):循環(huán)與分支程序設(shè)計(jì)實(shí)例分析第10講(第10周):子程序設(shè)計(jì)方法第11講(第11周):子程序設(shè)計(jì)實(shí)例分析第12講(第12周):高級(jí)匯編技術(shù)第13講(第13周):I/O設(shè)備數(shù)據(jù)傳送方式一第14講(第14周):I/O設(shè)備數(shù)據(jù)傳送方式二第15講(第15周):鍵盤I/O和顯示器I/O課件總目錄2/380IBM—PC匯編語(yǔ)言程序設(shè)計(jì)(第2版)清華大學(xué)計(jì)算機(jī)系列教材沈美名溫冬蟬編著總目錄3/380參考資料1.80X86匯編語(yǔ)言程序設(shè)計(jì) 沈美明溫冬嬋清華大學(xué)出版社2.IBMPC匯編語(yǔ)言與程序設(shè)計(jì) PETERABEL編著 第4版清華大學(xué)出版社.PRENTICEHALL 第5版人民郵電出版社3.IBMPC匯編語(yǔ)言與程序設(shè)計(jì)例題習(xí)題集溫冬嬋沈美明清華大學(xué)出版社總目錄4/380第01講:基礎(chǔ)知識(shí)FORTRANBASICCOBOLPASCALC/C++JAVA...第01講(第01周):基礎(chǔ)知識(shí)總目錄后一講計(jì)算機(jī)語(yǔ)言發(fā)展5/380面向機(jī)器低級(jí)語(yǔ)言

通常是為特定計(jì)算機(jī)或計(jì)算機(jī)系列專門設(shè)計(jì)。保持了機(jī)器語(yǔ)言優(yōu)點(diǎn)

含有直接和簡(jiǎn)捷特點(diǎn)??捎行У卦L問(wèn)、控制計(jì)算機(jī)各種硬件設(shè)備

如:磁盤、存放器、CPU、I/O端口等。高效程序設(shè)計(jì)語(yǔ)言

目標(biāo)代碼簡(jiǎn)短;占用內(nèi)存少;執(zhí)行速度快;經(jīng)常與高級(jí)語(yǔ)言配合使用

應(yīng)用十分廣泛。第01講(第01周):基礎(chǔ)知識(shí)后一講匯編語(yǔ)言特點(diǎn)總目錄6/380例1:編程實(shí)現(xiàn)c=a+b,并在屏幕上顯示出結(jié)果。

#include"stdafx.h"#include"stdio.h"intmain(intargc,char*argv[]){inta,b,c;a=1; b=2; c=a+b; printf(“c=%d\n",c); return0;}編譯后目標(biāo)文件到達(dá)3.59KB第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))后一講匯編語(yǔ)言特點(diǎn)舉例1總目錄7/380例2.編程實(shí)現(xiàn)c=a+b,并在屏幕上顯示出結(jié)果。

datasegmentadb?bdb?cdb?stringdb'c=$'dataendscodesegmentmainprocfarassumecs:code,ds:data,es:datastart:

pushdssubax,axpushaxmovax,datamovds,axmoves,ax

匯編后目標(biāo)文件只有208字節(jié)第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))

mova,1movb,2moval,aaddal,bmovc,alleadx,stringmovah,09int21haddc,30hmovdl,cmovah,2int21hmovdl,0ahint21hmovdl,0dhint21hretmainendpcodeendsendstart后一講匯編語(yǔ)言特點(diǎn)舉例2總目錄8/380系統(tǒng)程序、高效率代碼、I/O驅(qū)動(dòng)程序

70%以上系統(tǒng)軟件是用匯編語(yǔ)言編寫。一些快速處理、位處理、訪問(wèn)硬件設(shè)備等高效程序是用匯編語(yǔ)言編寫。高級(jí)繪圖程序、視頻游戲程序普通是用匯編語(yǔ)言編寫。后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))匯編語(yǔ)言應(yīng)用總目錄9/380目標(biāo):●了解匯編語(yǔ)言特征及其編程技術(shù)?!窠⑵稹皺C(jī)器”和“程序”、“空間”和“時(shí)間”概念。提議:●充分注意“匯編”課實(shí)踐性強(qiáng)特點(diǎn)?!穸嘧x程序,多寫程序,多上機(jī)調(diào)試程序?!袷煜C機(jī)編程結(jié)構(gòu)。●掌握匯編語(yǔ)言及其程序設(shè)計(jì)基本概念、方法和技巧。后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄教師提議10/380

數(shù)制

數(shù)制之間轉(zhuǎn)換

運(yùn)算

數(shù)和字符表示后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄第1章、基礎(chǔ)知識(shí)11/380存放容量1K=1024=210(Kilo)1M=1024K=220(Mega)1G=1024M=230(Giga)1個(gè)二進(jìn)制位:1bit(比特)8個(gè)二進(jìn)制位:1Byte(字節(jié))1Byte=8bit2個(gè)字節(jié):1Word(字)1Word=2Byte=16bit后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄預(yù)備知識(shí)12/380(1)R進(jìn)制數(shù)位權(quán)、基數(shù)、數(shù)碼;基數(shù)為R,逢R進(jìn)一進(jìn)位記數(shù)制基數(shù)數(shù)碼位權(quán)二進(jìn)制(Binary)20、12i,2-j八進(jìn)制(Octal)80、1、2、3、4、5、6、78i,8-j十進(jìn)制(Decimal)100、1、2、3、4、5、6、7、8、910i,10-j十六進(jìn)制(Hexadecimal)160、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16i,16-j(2)八進(jìn)制與二進(jìn)制數(shù)碼對(duì)應(yīng)關(guān)系二進(jìn)制000001010011100101110111八進(jìn)制01234567(3)十六進(jìn)制與二進(jìn)制數(shù)碼對(duì)應(yīng)關(guān)系二進(jìn)制000000010010010001010110011110001001101010111100110111101111十六進(jìn)制123456789ABCDEF1.1.1、數(shù)制后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄§1.1、進(jìn)位計(jì)數(shù)制與不一樣基數(shù)數(shù)之間轉(zhuǎn)換13/380(1)、任意進(jìn)制R轉(zhuǎn)化成十進(jìn)制數(shù)Eg:1011100.10111B=92.71875D

(2)、十進(jìn)制數(shù)轉(zhuǎn)換成其它進(jìn)制數(shù)

整數(shù)部分=>除R倒取余;小數(shù)部分=>乘R順取整;Eg:125.63D=>二進(jìn)制和八進(jìn)制后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄1.1.2、各數(shù)制之間轉(zhuǎn)換14/380二進(jìn)制十六進(jìn)制十進(jìn)制二進(jìn)制十進(jìn)制十六進(jìn)制降冪法除法二進(jìn)制是橋梁后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄1.1.3、各數(shù)制之間轉(zhuǎn)換15/380

二進(jìn)制八進(jìn)制

011

101

111

110.011

100B

3576.34∴

11101111110.0111B=3576.34O

61.42O

.110001100010∴61.42O=110001.10001B后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄16/380

二進(jìn)制十六進(jìn)制110101.1011111B

00110101.10111110B

35BE∴

110101.10111110B=35BEHA19.CH

A19.C

101000011001.1100∴A19.CH=101000011001.11B后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄17/380

1011B=23+21+20=11D

降冪法除法

例:27D=?B2711331----

2n3216842111011

∴27D=11011B

二進(jìn)制十進(jìn)制后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄18/380

十六進(jìn)制十進(jìn)制

BF3CH=11163+15162+3161+12160

=48956D

降冪法除法

例:399D=?H39914315399/16→24/16→1/16→0---↓↓↓16n256161F81

18F

∴399D=18FH后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄19/3801.2.1、二進(jìn)制算術(shù)運(yùn)算

逢二進(jìn)一、借一為二后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄§1.2、運(yùn)算(算術(shù)運(yùn)算和邏輯運(yùn)算)加法規(guī)則0+0=00+1=11+0=11+1=0(向高位進(jìn)1)乘法規(guī)則00=001=010=011=1減法規(guī)則0-0=00-1=1(向高位借1)1-0=11-1=020/3801.2.2、十六進(jìn)制算術(shù)運(yùn)算

逢十六進(jìn)一、借一為十六(1).加法規(guī)則:兩個(gè)一位數(shù)之和S<16時(shí)同十進(jìn)制加法,若S≥16時(shí)用S-16及進(jìn)位1取代S;(2).減法規(guī)則:一位數(shù)a-c=S,S>0時(shí)同十進(jìn)制減法,若S<0時(shí)向高位借1,然后(a+16)-c;(3).乘法規(guī)則:用十進(jìn)制乘法規(guī)則計(jì)算,結(jié)果用十六進(jìn)制表示;注意:若16進(jìn)制數(shù)最高位為字母,統(tǒng)計(jì)時(shí)在前面補(bǔ)0=>OA34DH,382FH;

后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄21/380后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄§1.3、幾個(gè)基本邏輯運(yùn)算(按位操作)22/380例:X=00FFHY=5555H,求Z=X

Y=?X=0000000011111111B

Y=0101010101010101B

Z=0101010110101010B

Z=55AAH后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄23/3801.4.1、計(jì)算機(jī)中有符號(hào)數(shù)表示機(jī)器數(shù)

在機(jī)器中,把一個(gè)數(shù)連其符號(hào)在內(nèi)數(shù)值化表示數(shù);后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄§1.4、計(jì)算機(jī)中數(shù)和字符表示24/3801.4.2、數(shù)慣用表示法——原碼反碼補(bǔ)碼原碼表示法:符號(hào)+絕對(duì)值例:n=8bit[+3]原碼=0000,0011=03H[-3]原碼=1000,0011=83H[+0]原碼=0000,0000=00H[-0]原碼=1000,0000=80H0表示不惟一反碼表示法:正數(shù)反碼同原碼,負(fù)數(shù)反碼數(shù)值位與原碼相反例:n=8bit[+5]反碼=0000,0101=05H[-5]反碼=1111,1010=FAH[+0]反碼=0000,0000=00H[-0]反碼=1111,1111=FFH0表示不惟一后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄25/380補(bǔ)碼表示法:正數(shù)補(bǔ)碼:

同原碼負(fù)數(shù)補(bǔ)碼:(1)寫出與該負(fù)數(shù)相對(duì)應(yīng)正數(shù)補(bǔ)碼

(2)按位求反(3)末位加一后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄26/380補(bǔ)碼符號(hào)擴(kuò)展規(guī)則

=>

高位不足者補(bǔ)符號(hào)位eg:[+46]補(bǔ)=00101110=2EH擴(kuò)展成8位 = 0000000000101110=002EH擴(kuò)展成16位[-46]補(bǔ)= 11010010=D2H擴(kuò)展成8位= 1111111111010010=FFD2H擴(kuò)展成16位后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄例:機(jī)器字長(zhǎng)8位,[-46]補(bǔ)碼=?[46]補(bǔ)碼=001011101101000111010010=D2H

∴機(jī)器字長(zhǎng)8位時(shí),[-46]補(bǔ)碼=D2H[+0]補(bǔ)碼=000000001111111100000000=[-0]補(bǔ)碼

0表示惟一按位求反末位加1按位求反末位加127/380十進(jìn)制二進(jìn)制十六進(jìn)制十進(jìn)制十六進(jìn)制n=8n=16+127011111117F+327677FFF+126011111107E+327667FFE......……...+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE......……...-1261000001082-327668002-1271000000181-327678001-1281000000080-327688000N位二進(jìn)制有符號(hào)數(shù)補(bǔ)碼表示范圍:-2N-1≤X≤2N-1-1N位二進(jìn)制無(wú)符號(hào)數(shù)表示范圍:0≤X≤2N-1

后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄28/380例:后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄1.4.3、補(bǔ)碼加法和減法:機(jī)器數(shù)用補(bǔ)碼表示目標(biāo)是為了運(yùn)算方便,先看下面一個(gè)例子:X=+32D、Y=-96D求(X+Y)值和補(bǔ)碼?顯然: [X]原 =00100000B [X]補(bǔ) =00100000B[Y]原 =11100000B [Y]補(bǔ) =10100000B[X]原+[Y]原 =

100000000B然而:[X]補(bǔ)+[Y]補(bǔ) =

11000000B

結(jié)果顯示:[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)求補(bǔ)運(yùn)算

對(duì)一個(gè)二進(jìn)制數(shù)按位求反、末位加一

加法規(guī)則:[X+Y]補(bǔ)碼=[X]補(bǔ)碼+[Y]補(bǔ)碼減法規(guī)則:[X-Y]補(bǔ)碼=[X]補(bǔ)碼

+[-Y]補(bǔ)碼

補(bǔ)碼減法可轉(zhuǎn)換為補(bǔ)碼加法29/380后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))1.4.4、進(jìn)位和溢出進(jìn)位:因?yàn)檫\(yùn)算結(jié)果超出了位數(shù),最高有效位向前進(jìn)位,這一位自然丟失,普通不表示結(jié)果對(duì)錯(cuò)。溢出:表示結(jié)果超出了字長(zhǎng)允許表示范圍,普通會(huì)造成結(jié)果犯錯(cuò)??偰夸?0/380后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄1.4.5、字符表示(1).機(jī)器中字符分類(2).ASCII碼:用一個(gè)字節(jié)來(lái)表示一個(gè)字符,低7位為字符ASCII值,最高位普通用作校驗(yàn)位。31/380第01講:作業(yè)布置Page14: 書面作業(yè)

1.1(3)、1.2(1)、1.3(4) 1.4(3)、1.5(6)、1.6(1)后一講第01講(第01周):基礎(chǔ)知識(shí)(3課時(shí))總目錄32/380

計(jì)算機(jī)系統(tǒng)

存放器

中央處理機(jī)

外部設(shè)備第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))第02講:80×86計(jì)算機(jī)組織前一講后一講總目錄33/3802.1.1、80x86微處理器發(fā)展P表2.1(1968年美國(guó)Intel企業(yè)成立)補(bǔ)充:1999年初32位PentiumⅢ芯片;注意各種芯片位數(shù);年后32/64位PentiumⅣ芯片;2.1.2、基本術(shù)語(yǔ):晶體管數(shù)、主頻、三總線(數(shù)據(jù)、地址、控制)、總線寬度、主存放器(內(nèi)存)、高速緩沖存放器、外部存放器;2.1.3、基本常識(shí):(1)、地址總線寬度與尋址空間:8位二進(jìn)制數(shù)

1個(gè)字節(jié)B;2個(gè)字節(jié)

1個(gè)字W;2個(gè)字

雙字D;地址線

K根可尋址2個(gè)存放單元;若按“字節(jié)”編址

2個(gè)字節(jié)(即2B);若按“字”編址

2個(gè)字(即2×2B=2B);若按“雙字”編址

2個(gè)雙字(即2×4B=2B);Eg:32位地址總線、按字節(jié)編址、則尋址2B=2KB=2MB=2GB=4GB;(2)、Chche容量:80386

少許、80486

8KBPentium

8KB指令cache、8KB數(shù)據(jù)cache;PetiumPro

8KB指令cache、8KB數(shù)據(jù)cache、356KB二級(jí)cache;PentiumⅡ、Ⅲ、Ⅳ更多;后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講§2.1、80×86微處理器介紹34/380硬件組成:1.中央處理機(jī)CPU總線控制邏輯接口接口2.存放器大容量存放器I/O設(shè)備3.I/O子系統(tǒng)系統(tǒng)總線......軟件:系統(tǒng)軟件用戶軟件后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講§2.2、基于微處理器計(jì)算機(jī)系統(tǒng)組成35/380(1).系統(tǒng)軟件

廠家提供給用戶一組程序、為用戶程序服務(wù);

主要有:操作系統(tǒng)、I/O驅(qū)動(dòng)程序、文件管理程序、文本編輯程序、翻譯程序(匯編程序、編譯程序、解釋程序);匯編語(yǔ)言高級(jí)語(yǔ)言注意

匯編語(yǔ)言與硬件相關(guān)、高級(jí)語(yǔ)言與硬件無(wú)關(guān);(2).用戶軟件

用戶編寫程序及相關(guān)文檔;軟件組成:后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講36/3802.3.1、中央處理器CPU組成

:運(yùn)算器、控制器、存放器組等①、運(yùn)算器

算術(shù)邏輯部件(ALU):算術(shù)運(yùn)算、邏輯運(yùn)算;②、控制器

產(chǎn)生控制信號(hào)、控制全部部件;③、存放器組

暫存指令運(yùn)行所需信息:操作數(shù)、地址、中間結(jié)果、最終止果、預(yù)取指令等;2.3.2、80x86存放器組

1、存放器組分類:①、程序可見(jiàn)存放器

“通用存放器”、“專用存放器”、“段存放器”②、程序不可見(jiàn)存放器

用戶不可操作、CPU專用;后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講§2.3、中央處理器(CPU)37/380后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講80x86存放器結(jié)構(gòu)數(shù)據(jù)存放器指針存放器變址存放器控制存放器38/3802、通用存放器組介紹(8個(gè))

分8位、16位、32位(1).累加器(EAX、AX、AH、AL)

除通用外、乘/除指令操作數(shù)、算術(shù)運(yùn)算結(jié)果和操作數(shù)、I/O與CPU傳送信息;(2).基址變址存放器(EBX、BX、BH、BL)

除通用外、存放基址(3).計(jì)數(shù)存放器(ECX、CX、CH、CL)

除通用外、計(jì)數(shù)功效;(4).數(shù)據(jù)存放器(EDX、DX、DH、DL)

除通用外、與累加器組合成雙字或四字長(zhǎng)數(shù)(DX:AX,EDX:EAX)、存放I/O端口地址;(5).堆棧指針存放器(ESP、SP)

除通用外,存放堆棧指針;(6).基址指針存放器(EBP、BP)

除通用外、與SS聯(lián)合確定”棧”中單元;(7).源變址存放器(ESI、SI)

除通用外、與DS聯(lián)用確定數(shù)據(jù)段中單元;(8).目標(biāo)變址存放器(EDI、DI)

除通用外、與DS聯(lián)用確定數(shù)據(jù)段單元:注意:變址存放器(7)、(8)有自增自減功效。后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講39/3803、專用存放器介紹(3個(gè))

16位/32位(1).指令指針存放器(EIP/IP)

存放即將運(yùn)行下一條指令偏移地址;它與段存放器CS聯(lián)合確定代碼段中指令物理地址;(2).堆棧指針存放器(ESP/SP)

除通用外,存放堆棧指針;(3).標(biāo)志存放器(EFLAGS/FLAGS)

又名“程序狀態(tài)存放器”,存放條件運(yùn)行時(shí)“條件碼標(biāo)志、控制標(biāo)志、系統(tǒng)標(biāo)志”(狀態(tài)字)條件碼標(biāo)志(6個(gè))

程序運(yùn)行結(jié)果和狀態(tài)信息,可作為程序轉(zhuǎn)移與處理控制條件;溢出標(biāo)志OF

溢出時(shí)為1(OV),不溢出時(shí)為0(NV);符號(hào)標(biāo)志SF

標(biāo)識(shí)結(jié)果正負(fù),正為0(PL),負(fù)為1(NZ);零標(biāo)志ZF

結(jié)果是否為0,是為1(ZR),否為0(NZ);半進(jìn)位標(biāo)志AF

運(yùn)算時(shí)第3位是否發(fā)生進(jìn)/借位,是為1(AC),否為0(NA);奇偶標(biāo)志PF

結(jié)果中1個(gè)數(shù)是否為偶,是為1(PE),否為0(PO);進(jìn)位標(biāo)志CF

最高位是否發(fā)生進(jìn)/借位,是為1(CY),否為0(NC);控制標(biāo)志(方向標(biāo)識(shí)DF)

DF=1則表明變址存放器SI和DI遞減;DF=0則表明變址存放器SI和DI遞增;系統(tǒng)標(biāo)志

用于I/O、中止屏蔽、程序調(diào)試、任務(wù)切換等;主要有:TF→陷阱標(biāo)志;IF→中止標(biāo)志;IO→PLI/O特權(quán)標(biāo)志等;后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講40/380條件碼標(biāo)志符號(hào)標(biāo)志名值為1值為0OF溢出標(biāo)志OV

NV

SF符號(hào)標(biāo)志NG

PL

ZF零標(biāo)志ZR

NZCF進(jìn)位標(biāo)志CY

NCAF輔助進(jìn)位標(biāo)志AC

NAPF奇偶標(biāo)志PE

PO例:ADDAX,BXJO/JCERROR?后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講標(biāo)志存放器(FLAGS)控制標(biāo)志符號(hào)標(biāo)志名值為1值為0DF方向標(biāo)志DN

UPIF中止標(biāo)志EI

DITF陷阱標(biāo)志沒(méi)定義41/3804、段存放器組(4個(gè)/6個(gè))介紹

都是16位:代碼段CS、數(shù)據(jù)段DS、堆棧段CS、附加段ES、附加數(shù)據(jù)段(FS和GS);

后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講42/3802.4.1、存放單元物理地址:Def:為了便于讀寫信息,內(nèi)存中按照字節(jié)編址即每個(gè)字節(jié)有一個(gè)唯一編號(hào),該編號(hào)位該單元物理地址;注意:字節(jié)編址、二進(jìn)制表示、十六進(jìn)制書寫;參見(jiàn)圖(2.5)存放器以字節(jié)(8bit)為編程單位每個(gè)字節(jié)單元都有唯一地址編碼地址用無(wú)符號(hào)整數(shù)來(lái)表示(編程用十六進(jìn)制表示)一個(gè)字要占用相繼兩個(gè)字節(jié)低位字節(jié)存入低地址,高位字節(jié)存入高地址對(duì)字,雙字,四字單元地址一律以最低字節(jié)地址表示機(jī)器以偶地址訪問(wèn)(讀/寫)存放器后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講§2.4、存放器存放單元地址和存放內(nèi)容43/3802.4.2、存放單元中內(nèi)容:Def:邏輯地址

段地址和偏移地址統(tǒng)稱邏輯地址;若:X單元存放內(nèi)容是Y單元地址,則Y單元內(nèi)容表示為:(Y)=((X))字節(jié),字,雙字,四字長(zhǎng)內(nèi)容在存放器中存放形式

低對(duì)低,高對(duì)高字節(jié)內(nèi)容(10000H)=9FH;(10001H)=26H訪問(wèn)一次內(nèi)存字內(nèi)容(10000H)=269FH;(10001H)=4826H訪問(wèn)兩次內(nèi)存雙字內(nèi)容(10000H)=8348269FH;(10001H)=5C834826H訪問(wèn)四次內(nèi)存后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講44/3802.4.3、實(shí)模式存放器尋址(尋址

怎樣形成物理地址)(1)、def:實(shí)模式

采取16位段地址和16位地址偏移形成20位物理地址;最大尋址空間1MB,最大分段為64KB存放器尋址方式?def:保護(hù)模式

采取16位段地址和32位偏移地址形成32位物理地址;最大尋址空間為4GB,最大分段為4GB存放器尋址方式;(2)、存放器地址分段:20根地址線:地址范圍00000H~FFFFFH(1MB)機(jī)器字長(zhǎng)16位:僅能表示地址范圍0000H~FFFFH(64KB)小段:每16個(gè)字節(jié)為一小段,共有64K個(gè)小段小段首地址00000H~0000FH00010H~0001FH00020H~0002FH…

FFFF0H~FFFFFH

段起始地址(段基址)

每一小段起始地址高16位(低4位為0);偏移地址(有效地址:EA)

段內(nèi)相對(duì)于段起始地址偏移值;64K范圍內(nèi)任意字節(jié);后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講45/380(3)、實(shí)模式尋址方式: 16d

段基址+偏移地址(EA)=物理地址(PA) 16位16位20位即:16位段基址左移4位后加16位偏移地址形成20位物理地址(硬件自動(dòng)實(shí)現(xiàn))例:(DS)=2100H,(EA)=(BP)=0500H則:(PA)=21000H+0500H=21500H(4)、段存放器(16位)

專門存放段基址存放器;①、CS

存放當(dāng)前正在運(yùn)行程序段基址;②、DS

存放當(dāng)前正在運(yùn)行程序所用到數(shù)據(jù)段基址;③、SS

存放當(dāng)前使用堆棧段棧底(高地址);④、ES

存放附加數(shù)據(jù)段基址;注意:①、每個(gè)段存放器定義段能夠獨(dú)占64KB,也可重合(見(jiàn)圖2.9);②、段存放器與其對(duì)應(yīng)存放偏移地址存放器之間有默認(rèn)關(guān)系(見(jiàn)表2.3與表2.4)后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講46/380支持多任務(wù)處理功效支持虛擬存放器特征

2.4.4、保護(hù)模式下存放器尋址16位選擇器值經(jīng)過(guò)操作系統(tǒng)地址轉(zhuǎn)換操作變成32位段地址,然后加上32位偏移地址而形成了32位物理地址;保護(hù)模式下存放器尋址所選存放單元描述符64描述符表所選段存儲(chǔ)器段基地址32選擇器16偏移地址32邏輯地址后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講47/3802.4.5、存放器與存放器比較:寄存器存儲(chǔ)器在CPU內(nèi)部在CPU外部訪問(wèn)速度快訪問(wèn)速度慢容量小,成本高容量大,成本低用名字表示用地址表示沒(méi)有地址地址可用各種方式形成后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講48/3801、外部接口組成:由一組“存放器”及相關(guān)“控制電路組成”;①、數(shù)據(jù)存放器

存放主機(jī)與外設(shè)交換數(shù)據(jù);②、狀態(tài)存放器

存放外設(shè)和接口當(dāng)前狀態(tài)信號(hào);③、命令存放器

存放CPU給外控制命令;2、Def:端口地址(又稱“端口號(hào)”)外設(shè)存放器地址(即編號(hào))①、編址方式

獨(dú)立編址、混合編址; ②、80x86I/O地址空間為64KB(即65536個(gè)B)外設(shè)中每個(gè)存放器有一個(gè)端口(Port)地址,組成一個(gè)獨(dú)立于內(nèi)存I/O地址空間:0000H~FFFFH3、外設(shè)例行程序

經(jīng)過(guò)中止方式轉(zhuǎn)入子程序,它完成一定I/O功效;分兩種:BIOS和DOS;

后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講§2.5、外部設(shè)備49/380第02講作業(yè)布置Page33:書面作業(yè)

習(xí)題2.2、習(xí)題2.3、習(xí)題2.4、習(xí)題2.5、習(xí)題2.8;

后一講第02講(第02周):80×86計(jì)算機(jī)組織(3課時(shí))總目錄前一講50/380第03講:80×86尋址方式教學(xué)要求:1.掌握普通指令系統(tǒng)基本概念:指令格式、功效和注意事項(xiàng)。2.重點(diǎn)掌握8086/8088指令系統(tǒng)中,各指令格式、尋址方式、指令類型。3.了解其它(飛躍等)尋址方式和指令類型。第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講第3章、80x86指令系統(tǒng)和尋址方式總目錄51/380§3.1、指令系統(tǒng)基本概念

計(jì)算機(jī)指令系統(tǒng)就是指該計(jì)算機(jī)能夠執(zhí)行全部指令集合。每種計(jì)算機(jī)都有它支持指令集合。

16位8086指令系統(tǒng)是整個(gè)Intel80x86系列微處理器指令系統(tǒng)基礎(chǔ)。3.1.1、指令系統(tǒng)第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄52/380操作碼

說(shuō)明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺乏組成部分。操作碼操作數(shù)·····

操作數(shù)指令由操作碼和操作數(shù)兩部分組成。操作數(shù)

是指令執(zhí)行參加者,即各種操作對(duì)象。有些指令不需要操作數(shù),通常指令都有一個(gè)或兩個(gè)操作數(shù),也有個(gè)別指令有三個(gè)甚至四個(gè)操作數(shù),通常稱為一地址指令、二地址指令、三…第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄3.1.2指令格式53/380指令功效——該指令能夠?qū)崿F(xiàn)何種操作。通常指令助記符就是指令功效英文單詞或其縮寫形式。指令支持尋址方式——該指令中操作數(shù)能夠采取何種尋址方式。指令對(duì)標(biāo)志影響——該指令執(zhí)行后是否對(duì)各個(gè)標(biāo)志位(OV、ZF、CF、PF等)有影響,以及怎樣影響。第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄3.1.3學(xué)習(xí)指令注意事項(xiàng)54/3803.2.1尋址、尋址方式概念尋址就是尋找操作數(shù)地址。尋址方式就是尋找操作數(shù)方法。操作數(shù)能夠跟隨在指令操作碼之后,稱為馬上數(shù).操作數(shù)也能夠存放在CPU內(nèi)部存放器中,稱為存放器操作數(shù).

絕大多數(shù)操作數(shù)存放在內(nèi)存放器中,稱為存放器操作數(shù).指令指定操作數(shù)位置,即給出地址信息,在執(zhí)行時(shí)需要依據(jù)這個(gè)地址信息找到需要操作數(shù).第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄§3.2、80x86尋址方式55/380

指令助記符表達(dá)該指令功效,它對(duì)應(yīng)一條二進(jìn)制編碼機(jī)器指令。指令操作數(shù)個(gè)數(shù)由該指令確定,能夠沒(méi)有操作數(shù),也能夠有一個(gè)、二個(gè)或三個(gè)操作數(shù)。80X86尋址方式分類:

尋址中心問(wèn)題怎樣確定“偏移地址”值;

第一類:與數(shù)據(jù)相關(guān)十種方式

①馬上尋址、②存放器尋址、③直接尋址、④存放器間接尋址、⑤存放器相對(duì)尋址、⑥基址變址尋址、⑦相對(duì)基址變址尋址、⑧百分比變址尋址、⑨基址百分比變址尋址、⑩相對(duì)基址百分比變址尋址;第二類:與轉(zhuǎn)移地址相關(guān)四種尋址方式

①段內(nèi)直接尋址、②段內(nèi)間接尋址、③段間直接尋址、④段間間接尋址;說(shuō)明:同一指令多個(gè)操作數(shù)可各自采取不一樣尋址方式。

3.2.280X86指令格式指令助記符[操作數(shù)1[,操作數(shù)2[,操作數(shù)3]]][;注釋]第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄56/3803.2.3與數(shù)據(jù)相關(guān)尋址方式與尋址方式相關(guān)基礎(chǔ)知識(shí)介紹:(1)、有效地址(EA)

指令直接或間接指明存放操作數(shù)內(nèi)存單元偏移地址: EA=基址+(變址*百分比因子)+位移量注意:上述公式中四種成份不一樣組合形成八種尋址方式①基址(base)

存放在“基址存放器”中;可正可負(fù);主要用于存放數(shù)組或字符串首址;16位基址存放器:BX、BP.32位基址存放器:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI.②變址(index)

存放在“變址存放器”中;可正可負(fù);主要用于訪問(wèn)數(shù)組中某元素或字符串中某一元素.16位變址存放器:SI、DI.32位變址存放器:除ESP以外七個(gè)32位通用存放器.③百分比因子(scalefactor)

只與變址存放器聯(lián)用;只能為1、2、4或8;注意:只能是32位尋址,沒(méi)有16位尋址;④位移量(displacement)

存放在指令中一個(gè)8位、16位、32位地址偏移部分;可正可負(fù);第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄57/380(2)、段超越前綴

形成物理地址時(shí),段存放器與訪存類型之間有默認(rèn)匹配關(guān)系,但有時(shí)能夠使用段超越前綴來(lái)改變默認(rèn)關(guān)系(參見(jiàn)P39表3.2);格式:MOVAX,ES:[H]尤其注意:但以下三種情況不允許使用段超越前綴①串處理指令目標(biāo)串

ES段;②取指指令

CS段;③PUSH目標(biāo)和POP源

SS段;第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄58/380以MOV指令為例:馬上尋址MOVAX,3069H存放器尋址MOVAL,BH直接尋址MOVAX,[H]存放器間接尋址MOVAX,[BX]存放器相對(duì)尋址MOVAX,COUNT[SI]基址變址尋址MOVAX,[BP][DI]相對(duì)基址變址尋址MOVAX,MASK[BX][SI]基址百分比變址尋址MOVEBX,[EAX][EDX*8]相對(duì)基址百分比變址尋址MOVEAX,TABLE[EBP][EDI*4]第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄59/3801)馬上尋址方式→沒(méi)有EA圖形表示:操作數(shù)n指令

定義:操作數(shù)作為指令一部分而直接寫在指令中,這種操作數(shù)稱為馬上數(shù),這種尋址方式也就稱為馬上數(shù)尋址方式。

匯編格式:n(n為馬上操作數(shù),是用8位或16位二進(jìn)制補(bǔ)碼表示有符號(hào)數(shù))實(shí)列:MOVAH,5 MOVAH,05HMOVAX,3064H MOVEAX,12345678H

功效:操作數(shù)存放在存放器,指令下一單元內(nèi)容為馬上操作數(shù)n。第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄60/380【例3.1】MOVAX,4576H執(zhí)行后(AX)=?

該例中源操作數(shù)為馬上尋址方式,馬上數(shù)為4576H,存放在指令下一單元。執(zhí)行:4576H→AX執(zhí)行后:(AX)=4576H

第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄61/3802)存放器尋址方式→沒(méi)有EA定義:指令所要操作數(shù)已存放在某存放器中,或把目標(biāo)操作數(shù)存入存放器。把在指令中指出所使用存放器(即:存放器助記符)尋址方式稱為存放器尋址方式。

存放器R指令操作數(shù)存放器匯編格式:R(其中R表示存放器名,如AX、BX等。)實(shí)例:MOVAX,BX

功效:操作數(shù)直接存放在存放器R中。圖形表示:第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄62/380指令中能夠引用存放器及其符號(hào)名稱以下:8位存放器:AH、AL、BH、BL、CH、CL、DH、DL;16位存放器:AX、BX、CX、DX、SI、DI、SP、BP和段存放器等;32位存放器:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP。注意:因?yàn)橹噶钏璨僮鲾?shù)已存放在存放器中,或操作結(jié)果存入存放器,這么,在指令執(zhí)行過(guò)程中,會(huì)降低讀/寫存放器單元次數(shù),所以,使用存放器尋址方式指令含有較快執(zhí)行速度。通常情況下,提倡在編寫匯編語(yǔ)言程序時(shí),應(yīng)盡可能地使用存放器尋址方式,但也不要把它絕對(duì)化。第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄63/380【例3.2】以下程序執(zhí)行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX執(zhí)行:AX←1234H執(zhí)行:BX←5678H執(zhí)行:AX←(AX)+(BX)執(zhí)行后:(AX)=68ACH,(BX)=5678H第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄64/3803)直接尋址方式→EA=位移量定義:指令所要操作數(shù)存放在內(nèi)存中,在指令中直接給出該操作數(shù)有效地址,這種尋址方式為直接尋址方式。

EA指令操作數(shù)存放器+段基地址匯編格式:含有變量地址表示式。功效:指令下一字單元內(nèi)容是操作數(shù)偏移地址EA。圖形表示:第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄65/380【例3.3】執(zhí)行指令:MOVBX,[1234H]設(shè)(DS)=H。執(zhí)行后:(BX)=?

DS:H+1234H21234HOP

~~~~…CS→DS→13H52H0H21234H……34H12H執(zhí)行:BX←(21234H)執(zhí)行后:(BX)=5213H第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄135266/380

在通常情況下,操作數(shù)存放在數(shù)據(jù)段中,所以,其物理地址將由數(shù)據(jù)段存放器DS和指令中給出有效地址直接形成,但假如使用段超越前綴,那么,操作數(shù)可存放在其它段。

比如:MOVES:[1000H],AX第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄67/380注意:馬上尋址方式和直接尋址方式書寫格式不一樣,直接尋址地址要寫在括號(hào)“[”,“]”內(nèi)。在程序中,直接地址通慣用內(nèi)存變量名來(lái)表示,如:MOVBX,VARW,其中,VARW是內(nèi)存字變量;試比較以下指令中源操作數(shù)尋址方式(VARW是內(nèi)存字變量):MOVAX,1234H

MOVAX,

[1234H]

前者是馬上尋址,后者是直接尋址

MOVAX,VARW

MOVAX,

[VARW]

二者是等效,均為直接尋址第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄68/3804)存放器間接尋址方式→EA=基址/變址定義:操作數(shù)在存放器中,操作數(shù)有效地址用SI、DI、BX和BP等四個(gè)存放器之一來(lái)指定,稱這種尋址方式為存放器間接尋址方式。EA存放器操作數(shù)存放器+段基地址基址或變址存放器指令匯編格式:[R]格式示例:MOVAX,[BX]或MOVAX,ES:[BX]功能:存放器R存放操作數(shù)偏移地址EA。圖形表示:第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄69/380【例3.4】假設(shè)有指令:MOVBX,[DI],在執(zhí)行時(shí),(DS)=1000H,(DI)=2345H,存放單元12345H內(nèi)容是4354H。問(wèn)執(zhí)行指令后,BX值是什么?

BX

DS:1000H+DI:2345H12345H解:存放器DI值不是操作數(shù),而是操作數(shù)地址。該操作數(shù)物理地址應(yīng)由DS和DI值形成,即:

PA=(DS)*16+DI=1000H*16+2345H=12345H。該指令執(zhí)行效果是:把從物理地址為12345H開(kāi)始一個(gè)字值傳送給BX。4354…OP…~~~~…

CS→

DS→54H43H

10000H

12345H第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄70/380在不使用段超越前綴情況下,有以下要求:

若有效地址用SI、DI和BX等之一來(lái)指定,則其缺省段存放器為DS;若有效地址用BP來(lái)指定,則其缺省段存放器為SS(即:堆棧段)。該尋址方式物理地址計(jì)算方法以下:

BX

物理地址PA=16×DS+

SI

DI或

物理地址PA=16×SS+

BP第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄71/380定義:操作數(shù)在存放器中,其有效地址是一個(gè)基址存放器(BX、BP)或變址存放器(SI、DI)內(nèi)容和指令中8位/16位偏移量之和。匯編格式:X[R](位移量X,是8位或16位二進(jìn)制補(bǔ)碼表示有符號(hào)數(shù))格式示例:MOVAX,COUNT[SI] 或 MOVAX,3000H[SI]MOVAX,[COUNT+SI] 或 MOVAX,[3000H+SI]MOVAX,ES:COUNT[SI] 或 MOVAX,ES:[COUNT+SI]

功效:操作數(shù)存放在存放器,存放器R內(nèi)容加位移量X為操作數(shù)偏移地址EA。圖形表示:地址存放器操作數(shù)存放器+段基地址基址或變址存放器位移量指令+EA第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講5)存放器相對(duì)尋址方式→EA=基址/變址+位移量總目錄72/380【例3.5】假設(shè)指令:MOVBX,[SI+100H],在執(zhí)行它時(shí),(DS)=1000H,(SI)=2345H,內(nèi)存單元12445H內(nèi)容為2715H,問(wèn)該指令執(zhí)行后,BX值是什么?解:EA=(SI)+100H=2345H+100H=2445H

PA=(DS)×16+EA=1000H×16+2445H=12445H。所以,該指令執(zhí)行效果是:把從物理地址為12445H開(kāi)始一個(gè)字值傳送給BX。第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄73/380定義:操作數(shù)在存放器中,其有效地址是一個(gè)基址存放器(BX、BP)和一個(gè)變址存放器(SI、DI)內(nèi)容之和。匯編格式:[BR+IR]格式示例:MOVAX,[BX][SI] 或 MOVAX,[BX+SI]MOVAX,ES:[BX][SI] 或 MOVAX,ES:[BX+SI]

功效:操作數(shù)存放在存放器,BR內(nèi)容加IR內(nèi)容是操作數(shù)偏移地址EA。圖形表示:操作數(shù)

存放器+段基地址基址存放器變址存放器指令+基址值基址存放器變址值變址存放器EA第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講6)基址變址尋址方式→EA=基址+變址總目錄74/380【例3.6】假設(shè)指令:MOVBX,[BX+SI],在執(zhí)行時(shí),(DS)=1000H,(BX)=2100H,(SI)=0011H,內(nèi)存單元12111H內(nèi)容為1234H。問(wèn)該指令執(zhí)行后,BX值是什么?

解:操作數(shù)物理地址PA為:

PA=(DS)*16+(BX)+(SI)=1000H*16+2100H+0011H=12111H所以,該指令執(zhí)行效果是:把從物理地址為12111H開(kāi)始一個(gè)字值傳送給BX。

…OP…~~~~…CS→

DS→34H12H

10000H12111H

BX:2100H+SI:0011HEA:2111H+DS:1000HPA=12111H1234

BX第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄75/380定義:操作數(shù)在存放器中,其有效地址是一個(gè)基址存放器(BX、BP)值、一個(gè)變址存放器(SI、DI)值和指令中8位/16位位移量之和。匯編格式:var[BR+IR]格式示例:MOVAX,COUNT[BX][SI] 或 MOVAX,-46H[BX][SI]MOVAX,COUNT[BX+SI] 或 MOVAX,0246H[BX+SI]MOVAX,[COUNT+BX+SI] 或 MOVAX,[-56H+BX+SI]MOVAX,ES:COUNT[BX][SI] 或 MOVAX,ES:[0246H+BX+SI]功能:操作數(shù)存放在存放器,BR內(nèi)容加IR內(nèi)容加位移量X是操作數(shù)偏移地址EA。圖形表示:第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講7)相對(duì)基址變址尋址方式→EA=基址+變址+位移量總目錄76/380【例3.7】假設(shè)指令:MOVAX,[BX+SI+200H],在執(zhí)行時(shí),(DS)=1000H,(BX)=2100H,(SI)=0010H,內(nèi)存單元12310H內(nèi)容為1234H。問(wèn)該指令執(zhí)行后,AX值是什么?解:該操作數(shù)物理地址應(yīng)由DS和EA值形成;即:PA=12310H所以,該指令執(zhí)行效果是:把從物理地址為12310H開(kāi)始一個(gè)字值傳送給AX。第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄77/380跨段越問(wèn)題

凡是使用存放器為BX、SI、DI時(shí),其默認(rèn)段為DS,使用BP時(shí),默認(rèn)段為SS。該要求為系統(tǒng)默認(rèn)狀態(tài)。當(dāng)要否定默認(rèn)狀態(tài),到非約定段尋找操作數(shù)時(shí),必須用跨段前綴指明操作數(shù)段存放器名。匯編格式:段存放器名:操作數(shù)地址。功能:冒號(hào)“:”之前段存放器名指明操作數(shù)所在段?!纠?.8】MOVAX,DS:[BP]MOV CX,SS:[SI]該例中,DS:,SS:均為跨段前綴,此時(shí)默認(rèn)狀態(tài)無(wú)效,操作數(shù)物理地址PA由段存放器內(nèi)容左移4位加偏移EA形成。上述2條指令源操作數(shù)物理地址分別為:PA1=(DS)左移4位+[BP]PA2=(SS)左移4位+[SI]第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄78/380格式: MOVEAX,MASK[ESI*4]或 MOVEAX,[MASK+ESI*4]講解:eg3.12第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講8)相對(duì)百分比變址尋址→EA=變址×百分比因子+位移量格式: MOVEBX,[EAX][EDX*8] 或MOVEBX,[EAX+EDX*8]或MOVEBX,[ESP][EAX*2]格式: MOVEAX,TABLE[EBP][EDI*4] 或MOVEAX,[TABLE+EBP+EDI*4]8位/16位/32位位移量注意1:百分比因子只能與32位變址存放器:EAX、EBX、ECX、EDX、EBP、ESI、EDI聯(lián)用;且百分比因子只能為1、2、4或8;注意2:

8)、9)、10)只能是32位尋址,沒(méi)有16位尋址;9)基址百分比變址尋址→EA=基址+變址×百分比因子10)相對(duì)基址百分比變址尋址→EA=基址+變址×百分比因子+位移量總目錄79/3803.2.4、與轉(zhuǎn)移地址相關(guān)尋址方式用來(lái)確定轉(zhuǎn)移指令及轉(zhuǎn)子(call)指令轉(zhuǎn)向地址。轉(zhuǎn)移地址是由各種尋址方式得到有效地址和段地址相加而成,有效地址存入IP存放器中,段地址指定為CS段存放器內(nèi)容。

段內(nèi)尋址段內(nèi)直接尋址JMPNEARPTRNEXT

段內(nèi)間接尋址JMPTABLE[BX]段間尋址段間直接尋址JMPFARPTRNEXT

段間間接尋址JMPDWORDPTR[BX]第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄80/380(1).段內(nèi)直接尋址轉(zhuǎn)向有效地址=當(dāng)前(IP)+位移量(8bit/16bit)格式: JMP SHORT

QUEST

短跳轉(zhuǎn)

8位位移量 JMP NEARPTP

PROGIA

近跳轉(zhuǎn)

16位位移量即:CS不變(IP)←當(dāng)前(IP)+位移量(8bit/16bit)位移量IP存放器+EA第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄81/380【例3.8】(1).JMPSHORTQUEST

其中QUEST表示轉(zhuǎn)移符號(hào)地址,操作符SHORT表示是個(gè)8位帶符號(hào)數(shù),數(shù)范圍是80H~7FH,即-128~+127。它只能相對(duì)于當(dāng)前IP(轉(zhuǎn)移指令下一條指令首地址)所指位置作-128~+127范圍內(nèi)跳轉(zhuǎn),所以稱為短跳轉(zhuǎn)。(2).JMPNEARPTRPROGA其中PROGA表示轉(zhuǎn)移符號(hào)地址,操作符NEARPRT表示是個(gè)16位帶符號(hào)數(shù),數(shù)范圍是8000H~7FFFH,即-32768~+32767。它只能相對(duì)于當(dāng)前IP所指位置作-32768~+32767范圍內(nèi)跳轉(zhuǎn),所以稱為近跳轉(zhuǎn)。

第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄82/380(2).段內(nèi)間接尋址轉(zhuǎn)向有效地址是一個(gè)存放器或存放單元內(nèi)容??捎贸R上數(shù)以外任何一個(gè)數(shù)據(jù)尋址方式得到,所得到轉(zhuǎn)向有效地址取代IP存放器內(nèi)容。格式: JMPBX 即:(IP)←存放器內(nèi)容 JMPWORDPTR[BP+TABLE] 即:(IP)←存放器內(nèi)容JMPDWORDPTR[EBP+TABLE] 即:(IP)←存放器內(nèi)容注意:指令EA中是除馬上數(shù)以外任何尋址方式取得16/32位偏移地址;轉(zhuǎn)向有效地址指令數(shù)據(jù)尋址方式或依據(jù)數(shù)據(jù)尋址方式計(jì)算得到EA值轉(zhuǎn)向有效地址存放單元存放器存放器第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄83/380

【例3.9】已知:TABLE=20A2H,(BX)=1256H,(SI)=528EH,(DS)=H,(232F8H)=3280H,(264E4H)=2450H

JMPBX;(IP)=1256H

JMPWORDPTRTABLE[BX];(IP)=3280H

JMPWORDPTR[BX][SI];(IP)=2450H第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄84/380(3).段間直接尋址用指令中提供轉(zhuǎn)向段地址和偏移地址取代CS和IP。格式:JMPFARPTR

NEXT功效:(CS)

NEXT所在段基址;(IP)

NEXT所在段段內(nèi)偏移;即轉(zhuǎn)到NEXT所在位置;

指令偏移地址IP存放器段地址CS存放器第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄85/380【例3.9】JMPFARPTRNEXTROUNT第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄86/380(4).段間間接尋址用存放器中兩個(gè)相繼字內(nèi)容取代CS和IP,存放單元地址可用存放器尋址方式得到。

格式: JMPDWORDPTR[BX] //32位尋址類同;[EBX] JMPDWORDPTR[BX+MARK] //32位尋址類同;[EBX] JMPDWORDPTR[BX+SI] //32位尋址類同;[EBX]注意:EA是除馬上數(shù)尋址和存放器尋址以外任一尋址方式取得有效地址

指令數(shù)據(jù)尋址方式依據(jù)數(shù)據(jù)尋址方式計(jì)算出EA值轉(zhuǎn)向有效地址轉(zhuǎn)向有效地址存放器中兩個(gè)相繼字IPCS第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄87/380【例3.10】JMPDWORDPTR[INTERS+BX]若:DS=3000H,BX=1200H,INTERS=0020H,則:存放單元物理地址PA=30000+0020+1200=31200H指令執(zhí)行前:CS=0000H,IP=1000H;(31220H)=40H,(31221)=01H,(31222H)=00H,(31223)=10H。指令執(zhí)行后:CS=1000H,IP=0140H:(31220H)=40H,(31221)=01H,(31222H)=00H,(31223)=10H。第03講(第03周):80×86尋址方式(3課時(shí))前一講后一講總目錄88/380指令JMPDWORDPTR[INTERS+BX]存放和執(zhí)行情況:第03講(第03周

溫馨提示

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

評(píng)論

0/150

提交評(píng)論