32位匯編語言02綜述_第1頁
32位匯編語言02綜述_第2頁
32位匯編語言02綜述_第3頁
32位匯編語言02綜述_第4頁
32位匯編語言02綜述_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址2.1 2.1 數(shù)據(jù)表示數(shù)據(jù)表示2.2 2.2 常量表達(dá)常量表達(dá)2.3 2.3 變量應(yīng)用變量應(yīng)用2.4 2.4 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址理解計(jì)算機(jī)的數(shù)據(jù)表達(dá)理解計(jì)算機(jī)的數(shù)據(jù)表達(dá)熟悉匯編語言的常量表達(dá)熟悉匯編語言的常量表達(dá)掌握匯編語言的變量定義和屬性掌握匯編語言的變量定義和屬性掌握處理器指令的數(shù)據(jù)尋址方式掌握處理器指令的數(shù)據(jù)尋址方式第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址3 32.1 2.1 數(shù)據(jù)表示數(shù)據(jù)表示數(shù)據(jù)(數(shù)據(jù)(DataData):計(jì)算機(jī)處理的對象:計(jì)算機(jī)處理的對象對應(yīng)指令操作的對象:對應(yīng)指令操作

2、的對象:操作數(shù)(操作數(shù)(OprandOprand)計(jì)算機(jī)中的數(shù)據(jù)要用二進(jìn)制的計(jì)算機(jī)中的數(shù)據(jù)要用二進(jìn)制的0 0和和1 1組合表示組合表示進(jìn)入計(jì)算機(jī)的任何信息都要轉(zhuǎn)換成進(jìn)入計(jì)算機(jī)的任何信息都要轉(zhuǎn)換成0 0和和1 1數(shù)碼數(shù)碼IA-32IA-32整數(shù)指令支持的基本數(shù)據(jù)類型整數(shù)指令支持的基本數(shù)據(jù)類型n8 8、1616、3232、6464位無符號整數(shù)位無符號整數(shù)n8 8、1616、3232、6464位有符號整數(shù)位有符號整數(shù)nASCIIASCII字符、字符串和字符、字符串和BCDBCD碼碼第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址4 42.1.1 2.1.1 數(shù)制數(shù)制人習(xí)慣使用十進(jìn)制計(jì)數(shù)人習(xí)慣使用十進(jìn)制計(jì)

3、數(shù)計(jì)算機(jī)使用二進(jìn)制進(jìn)行數(shù)據(jù)處理計(jì)算機(jī)使用二進(jìn)制進(jìn)行數(shù)據(jù)處理十六進(jìn)制數(shù)便于表達(dá)二進(jìn)制數(shù)十六進(jìn)制數(shù)便于表達(dá)二進(jìn)制數(shù)第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址5 51. 1. 二進(jìn)制二進(jìn)制便于計(jì)算機(jī)存儲及物理實(shí)現(xiàn)便于計(jì)算機(jī)存儲及物理實(shí)現(xiàn)特點(diǎn):逢二進(jìn)一,由特點(diǎn):逢二進(jìn)一,由0 0和和1 1兩個數(shù)碼組成,基數(shù)兩個數(shù)碼組成,基數(shù)為為2 2,各個位權(quán)以,各個位權(quán)以2 2k k表示表示二進(jìn)制數(shù):二進(jìn)制數(shù):a an na an-1n-1aa1 1a a0 0 .b.b1 1b b2 2bbm ma an n2 2n na an-1n-12 2n-1n-1a a1 12 21 1a a0 02 20 0 b b

4、1 12 2- -1 1b b2 22 2- -2 2b bm m2 2- -m m其中其中a ai i,b bj j非非0 0即即1 1二進(jìn)制數(shù)的算術(shù)運(yùn)算:二進(jìn)制數(shù)的算術(shù)運(yùn)算:逢逢2 2進(jìn)進(jìn)1 1、借、借1 1當(dāng)當(dāng)2 2示意圖示意圖第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址二進(jìn)制數(shù)的算術(shù)運(yùn)算二進(jìn)制數(shù)的算術(shù)運(yùn)算返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址2. 2. 邏輯運(yùn)算邏輯運(yùn)算事件的假和真可用數(shù)碼事件的假和真可用數(shù)碼0 0和和1 1表示表示事件之間的關(guān)系可以利用二進(jìn)制表達(dá)事件之間的關(guān)系可以利用二進(jìn)制表達(dá)數(shù)字電路的低高電平用數(shù)碼數(shù)字電路的低高電平用數(shù)碼0 0和和1 1表示表示數(shù)字信

5、號之間的關(guān)系可以利用二進(jìn)制描述數(shù)字信號之間的關(guān)系可以利用二進(jìn)制描述數(shù)碼數(shù)碼0 0和和1 1僅僅代表兩種狀態(tài)僅僅代表兩種狀態(tài)它們的它們的運(yùn)算是邏輯運(yùn)算運(yùn)算是邏輯運(yùn)算n邏輯與邏輯與ANDAND:1101 1101 0011 = 0001 0011 = 0001n邏輯或邏輯或OROR:1101 1101 0011 = 1111 0011 = 1111n邏輯非邏輯非NOTNOT: 1101 = 00101101 = 0010n邏輯異或邏輯異或XORXOR: 1101 1101 0011 = 1110 0011 = 1110 第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址3. 3. 十六進(jìn)制十六進(jìn)制用于表

6、達(dá)二進(jìn)制數(shù),相互轉(zhuǎn)換簡單用于表達(dá)二進(jìn)制數(shù),相互轉(zhuǎn)換簡單基數(shù)基數(shù)1616,逢,逢1616進(jìn)位,位權(quán)為進(jìn)位,位權(quán)為1616k k1616個數(shù)碼:個數(shù)碼:0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9,A A,B B,C C,D D,E E,F(xiàn) F十六進(jìn)制數(shù):十六進(jìn)制數(shù):a an na an-1n-1aa1 1a a0 0.b.b1 1b b2 2bbm ma an n1616n na an-1n-11616n-1n-1a a1 116161 1 a a0 016160 0b b1 11616- -1 1b b2 21616- -2 2b bm m1616- -m m

7、其中其中a ai i,b bj j是是0 0F F中的一個數(shù)碼中的一個數(shù)碼十六進(jìn)制數(shù)的加減:逢十六進(jìn)制數(shù)的加減:逢1616進(jìn)位進(jìn)位1 1,借,借1 1當(dāng)當(dāng)1616減法減法加法加法第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址十六進(jìn)制數(shù)的加法運(yùn)算十六進(jìn)制數(shù)的加法運(yùn)算 2 3 D 9+ 9 4 B E B 8 9 79+14=23=16(carry)+713+11+1(carry)=25=16(carry)+93+4+1(carry)=82+9=11=B返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址十六進(jìn)制數(shù)的減法運(yùn)算十六進(jìn)制數(shù)的減法運(yùn)算 A 5 9 F- 6 2 B 8 4 2 E 715-

8、8=716(borrow)+9-11=14=E5-2-1(borrow)=210-6=4返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址11114. 4. 數(shù)制之間的轉(zhuǎn)換數(shù)制之間的轉(zhuǎn)換十進(jìn)制十進(jìn)制二進(jìn)制二進(jìn)制十六進(jìn)制十六進(jìn)制BCD碼碼常用二進(jìn)制位權(quán)常用二進(jìn)制位權(quán)00000002-30.12510001112-20.2520010222-10.53001133201401004421250101552246011066238701117724168100088253291001992664101010A27128111011B28256121100C29512131101D210102414

9、1110E21532768151111F21665536第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址1212二進(jìn)制數(shù)或十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)二進(jìn)制數(shù)或十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)方法:按權(quán)展開方法:按權(quán)展開二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)0011.1010B0011.1010B1 12 21 11 12 20 01 12 2- -1 10 02 2- -2 21 12 2- -3 33.6253.625十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)1.2H1.2H1 116160 02 216161 11.1251.125第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址1313十進(jìn)制整

10、數(shù)轉(zhuǎn)換為二或十六進(jìn)制數(shù)十進(jìn)制整數(shù)轉(zhuǎn)換為二或十六進(jìn)制數(shù)整數(shù)整數(shù)部分轉(zhuǎn)換:用除法部分轉(zhuǎn)換:用除法n十進(jìn)制數(shù)整數(shù)部分不斷除以基數(shù)十進(jìn)制數(shù)整數(shù)部分不斷除以基數(shù)2 2或或1616,并,并記下余數(shù),直到商為記下余數(shù),直到商為0 0為止為止n由最后一個余數(shù)起逆向取各個余數(shù),則為轉(zhuǎn)由最后一個余數(shù)起逆向取各個余數(shù),則為轉(zhuǎn)換成的二進(jìn)制和十六進(jìn)制數(shù)換成的二進(jìn)制和十六進(jìn)制數(shù)12612601111110B01111110B1261267EH7EH示意圖示意圖第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址1414十進(jìn)制整數(shù)的轉(zhuǎn)換十進(jìn)制整數(shù)的轉(zhuǎn)換返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址1515十進(jìn)制小數(shù)轉(zhuǎn)換為二或

11、十六進(jìn)制數(shù)十進(jìn)制小數(shù)轉(zhuǎn)換為二或十六進(jìn)制數(shù)小數(shù)小數(shù)部分轉(zhuǎn)換:用乘法部分轉(zhuǎn)換:用乘法n分別乘以各自的基數(shù),記錄整數(shù)部分,直到分別乘以各自的基數(shù),記錄整數(shù)部分,直到小數(shù)部分為小數(shù)部分為0 0為止為止0.81250.81250.1101B0.1101B0.81250.81250.DH0.DH小數(shù)轉(zhuǎn)換會發(fā)生總是無法乘到為小數(shù)轉(zhuǎn)換會發(fā)生總是無法乘到為0 0的情況的情況n可選取一定位數(shù)(精度)可選取一定位數(shù)(精度)n將產(chǎn)生無法避免的轉(zhuǎn)換誤差將產(chǎn)生無法避免的轉(zhuǎn)換誤差示意圖示意圖第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址1616十進(jìn)制小數(shù)的轉(zhuǎn)換十進(jìn)制小數(shù)的轉(zhuǎn)換返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋

12、址1717二進(jìn)制和十六進(jìn)制數(shù)的相互轉(zhuǎn)換二進(jìn)制和十六進(jìn)制數(shù)的相互轉(zhuǎn)換二進(jìn)制和十六進(jìn)制數(shù)之間具有對應(yīng)關(guān)系二進(jìn)制和十六進(jìn)制數(shù)之間具有對應(yīng)關(guān)系n以小數(shù)點(diǎn)為基準(zhǔn)以小數(shù)點(diǎn)為基準(zhǔn)n整數(shù)從左向右,小數(shù)從右向左整數(shù)從左向右,小數(shù)從右向左n每每4 4個二進(jìn)制位對應(yīng)一個十六進(jìn)制位個二進(jìn)制位對應(yīng)一個十六進(jìn)制位00111010B00111010B3AH3AHF2HF2H11110010B11110010B第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址18182.1.2 2.1.2 數(shù)值的編碼數(shù)值的編碼編碼:編碼:用文字、符號或者數(shù)碼來表示某種信用文字、符號或者數(shù)碼來表示某種信息(數(shù)值、語言、操作指令、狀態(tài)等)的過程息(數(shù)

13、值、語言、操作指令、狀態(tài)等)的過程二進(jìn)制編碼:二進(jìn)制編碼:組合組合0 0和和1 1數(shù)碼數(shù)碼機(jī)器數(shù)機(jī)器數(shù):計(jì)算機(jī)用計(jì)算機(jī)用0 0和和1 1數(shù)碼組合表達(dá)的數(shù)值數(shù)碼組合表達(dá)的數(shù)值真值真值:現(xiàn)實(shí)中真實(shí)的數(shù)值現(xiàn)實(shí)中真實(shí)的數(shù)值數(shù)值的兩種編碼方式數(shù)值的兩種編碼方式n定點(diǎn)格式(第定點(diǎn)格式(第2 2章)章)n浮點(diǎn)格式(第浮點(diǎn)格式(第9 9章)章)第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址19191. 1. 定點(diǎn)整數(shù)定點(diǎn)整數(shù)定點(diǎn)格式:固定小數(shù)點(diǎn)的位置表達(dá)數(shù)值定點(diǎn)格式:固定小數(shù)點(diǎn)的位置表達(dá)數(shù)值定點(diǎn)整數(shù):定點(diǎn)整數(shù):小數(shù)點(diǎn)固定在機(jī)器數(shù)的最右側(cè)小數(shù)點(diǎn)固定在機(jī)器數(shù)的最右側(cè)定點(diǎn)小數(shù):小數(shù)點(diǎn)固定在機(jī)器數(shù)的最左側(cè)定點(diǎn)小數(shù):小數(shù)

14、點(diǎn)固定在機(jī)器數(shù)的最左側(cè)無符號整數(shù)無符號整數(shù)(無符號數(shù))(無符號數(shù))n只表達(dá)只表達(dá)0 0和正整數(shù)的定點(diǎn)整數(shù)和正整數(shù)的定點(diǎn)整數(shù)nN N位無符號整數(shù)表達(dá)范圍:位無符號整數(shù)表達(dá)范圍:0 02 2N N-1-1有符號整數(shù)有符號整數(shù)(有符號數(shù)、帶符號數(shù))(有符號數(shù)、帶符號數(shù))n表達(dá)負(fù)整數(shù)、表達(dá)負(fù)整數(shù)、0 0和正整數(shù)的定點(diǎn)整數(shù)和正整數(shù)的定點(diǎn)整數(shù)n最高位表達(dá)數(shù)值正負(fù)最高位表達(dá)數(shù)值正負(fù)n符號位用符號位用0 0表示正數(shù)、表示正數(shù)、1 1表示負(fù)數(shù)表示負(fù)數(shù)示意圖示意圖第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址2020定點(diǎn)整數(shù)格式定點(diǎn)整數(shù)格式返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址21212. 2. 補(bǔ)碼

15、補(bǔ)碼有符號整數(shù)在計(jì)算機(jī)中默認(rèn)采用補(bǔ)碼有符號整數(shù)在計(jì)算機(jī)中默認(rèn)采用補(bǔ)碼n最高位表示符號:正數(shù)用最高位表示符號:正數(shù)用0 0,負(fù)數(shù)用,負(fù)數(shù)用1 1n正數(shù)補(bǔ)碼:直接表示數(shù)值大?。ㄍ瑹o符號數(shù))正數(shù)補(bǔ)碼:直接表示數(shù)值大小(同無符號數(shù))n負(fù)數(shù)補(bǔ)碼:將對應(yīng)正數(shù)補(bǔ)碼取反加負(fù)數(shù)補(bǔ)碼:將對應(yīng)正數(shù)補(bǔ)碼取反加1 1105105補(bǔ)碼補(bǔ)碼01101001B01101001B-105-105補(bǔ)碼補(bǔ)碼01101001B01101001B取反取反1 110010110B10010110B1 110010111B10010111Bn8 8位二進(jìn)制補(bǔ)碼的數(shù)值范圍:位二進(jìn)制補(bǔ)碼的數(shù)值范圍:-128-128+127+127n1616位

16、二進(jìn)制補(bǔ)碼的數(shù)值范圍:位二進(jìn)制補(bǔ)碼的數(shù)值范圍:-2-21515+2+21515-1-1n3232位二進(jìn)制補(bǔ)碼的數(shù)值范圍:位二進(jìn)制補(bǔ)碼的數(shù)值范圍:-2-23131+2+23131-1-1nN N位二進(jìn)制補(bǔ)碼的數(shù)值范圍:位二進(jìn)制補(bǔ)碼的數(shù)值范圍:-2-2N-1N-1+2+2N-1N-1-1-1第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址2222負(fù)數(shù)求補(bǔ)負(fù)數(shù)求補(bǔ)負(fù)數(shù)真值負(fù)數(shù)真值“取反加取反加1”1”得機(jī)器數(shù)補(bǔ)碼得機(jī)器數(shù)補(bǔ)碼負(fù)數(shù)補(bǔ)碼負(fù)數(shù)補(bǔ)碼“取反加取反加1”1”得到負(fù)數(shù)真值得到負(fù)數(shù)真值補(bǔ)碼:補(bǔ)碼:11100000B11100000B真值:真值:-(11100000-(11100000求反求反1 1) )

17、-(00011111+1)-(00011111+1) -00100000-00100000-2-25 5-32-32負(fù)數(shù)求補(bǔ)運(yùn)算,等效于用帶借位的負(fù)數(shù)求補(bǔ)運(yùn)算,等效于用帶借位的0 0作減法作減法真值:真值:-8-8,補(bǔ)碼:,補(bǔ)碼:-8-8補(bǔ)碼補(bǔ)碼00H-08H00H-08HF8HF8H補(bǔ)碼:補(bǔ)碼:1111100011111000,真值:,真值:-(00H-F8H)-(00H-F8H)-08H-08H-8-8+8 =0000100011110111+ 1-8 =11111000 0 =00000000-(8=00001000)-8 =11111000第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址2

18、3233. 3. 補(bǔ)碼運(yùn)算補(bǔ)碼運(yùn)算利用無符號數(shù)加法結(jié)合補(bǔ)碼表達(dá),實(shí)現(xiàn)利用無符號數(shù)加法結(jié)合補(bǔ)碼表達(dá),實(shí)現(xiàn)n無符號數(shù)加法無符號數(shù)加法n無符號數(shù)減法無符號數(shù)減法n有符號數(shù)加法有符號數(shù)加法n有符號數(shù)減法有符號數(shù)減法無符號數(shù)加減運(yùn)算,需要利用進(jìn)位或借位無符號數(shù)加減運(yùn)算,需要利用進(jìn)位或借位有符號數(shù)加減運(yùn)算,注意避免出現(xiàn)溢出有符號數(shù)加減運(yùn)算,注意避免出現(xiàn)溢出XX補(bǔ)碼補(bǔ)碼YY補(bǔ)碼補(bǔ)碼XXYY補(bǔ)碼補(bǔ)碼XX補(bǔ)碼補(bǔ)碼YY補(bǔ)碼補(bǔ)碼XX補(bǔ)碼補(bǔ)碼 YY補(bǔ)碼補(bǔ)碼XXYY補(bǔ)碼補(bǔ)碼第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址24244. 4. 原碼和反碼原碼和反碼正數(shù)的原碼、反碼和無符號數(shù)一樣正數(shù)的原碼、反碼和無符號數(shù)一樣求負(fù)

19、數(shù)的原碼、反碼和補(bǔ)碼求負(fù)數(shù)的原碼、反碼和補(bǔ)碼n首先計(jì)算其對應(yīng)正數(shù)的編碼首先計(jì)算其對應(yīng)正數(shù)的編碼n然后取反符號位(設(shè)置為然后取反符號位(設(shè)置為1 1)成為原碼)成為原碼n再取反其他位得到反碼再取反其他位得到反碼n最后加最后加1 1就是補(bǔ)碼就是補(bǔ)碼真值:真值:3232,機(jī)器數(shù):,機(jī)器數(shù):00100000B00100000B20H20H真值:真值:3232,機(jī)器數(shù):,機(jī)器數(shù): 3232原碼原碼10100000B10100000BA0HA0H 3232反碼反碼11011111B11011111BDFHDFH20H20H補(bǔ)碼補(bǔ)碼11100000B11100000BE0HE0H第第2 2章章 數(shù)據(jù)表示和尋

20、址數(shù)據(jù)表示和尋址25252.1.3 2.1.3 字符的編碼字符的編碼在計(jì)算機(jī)中,各種字符需要用若干位的二進(jìn)制在計(jì)算機(jī)中,各種字符需要用若干位的二進(jìn)制碼的組合表示,即字符的二進(jìn)制編碼碼的組合表示,即字符的二進(jìn)制編碼由于字節(jié)為計(jì)算機(jī)的基本存儲單位,所以常以由于字節(jié)為計(jì)算機(jī)的基本存儲單位,所以常以8 8個二進(jìn)制位為單位表達(dá)字符個二進(jìn)制位為單位表達(dá)字符第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址26261. BCD1. BCD(二進(jìn)制表達(dá)的十進(jìn)制)(二進(jìn)制表達(dá)的十進(jìn)制)二進(jìn)制編碼的十進(jìn)制數(shù)二進(jìn)制編碼的十進(jìn)制數(shù)n一個十進(jìn)制數(shù)位用一個十進(jìn)制數(shù)位用4 4位二進(jìn)制編碼來表示位二進(jìn)制編碼來表示n8421 BCD

21、8421 BCD碼:低碼:低1010個個4 4位二進(jìn)制編碼表示位二進(jìn)制編碼表示0 09 9n壓縮壓縮BCDBCD碼:一個字節(jié)表達(dá)兩位碼:一個字節(jié)表達(dá)兩位BCDBCD碼碼n非壓縮非壓縮BCDBCD碼:一個字節(jié)表達(dá)一位碼:一個字節(jié)表達(dá)一位BCDBCD碼(低碼(低4 4位表位表達(dá)數(shù)值,高達(dá)數(shù)值,高4 4位常設(shè)置為位常設(shè)置為0 0)BCDBCD碼很直觀碼很直觀BCDBCD碼:碼:0100 1001 0111 1000.0001 0100 10010100 1001 0111 1000.0001 0100 1001十進(jìn)制真值:十進(jìn)制真值: 4978.1494978.149BCD碼便于輸入輸出,表達(dá)數(shù)值準(zhǔn)

22、確碼便于輸入輸出,表達(dá)數(shù)值準(zhǔn)確第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址27272. ASCII2. ASCII(美國標(biāo)準(zhǔn)信息交換碼)(美國標(biāo)準(zhǔn)信息交換碼)標(biāo)準(zhǔn)標(biāo)準(zhǔn)ASCIIASCII碼用碼用7 7位二進(jìn)制編碼,有位二進(jìn)制編碼,有128128個個不可顯示的控制字符:前不可顯示的控制字符:前3232個和最后一個個和最后一個回車回車CRCR:0DH0DH 換行換行LFLF:0AH0AH 響鈴響鈴BELBEL:07H07H可顯示和打印的字符:可顯示和打印的字符:20H20H及以后的及以后的9595個編碼個編碼n數(shù)碼數(shù)碼0 09 9:30H30H39H39Hn大寫字母大寫字母A AZ Z:41H41

23、H5AH5AHn小寫字母小寫字母a az z:61H61H7AH7AHn空格:空格:20H20H擴(kuò)展擴(kuò)展ASCIIASCII碼:最高碼:最高D D7 7位為位為1 1,表達(dá)制表符號,表達(dá)制表符號第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址28283. Unicode3. Unicode(統(tǒng)一碼)(統(tǒng)一碼)8 8位位ASCIIASCII碼表達(dá)英文字符碼表達(dá)英文字符1616位國標(biāo)碼表達(dá)漢字字符位國標(biāo)碼表達(dá)漢字字符n漢字機(jī)內(nèi)碼:國標(biāo)碼在計(jì)算機(jī)中使用的編碼漢字機(jī)內(nèi)碼:國標(biāo)碼在計(jì)算機(jī)中使用的編碼國際信息交換碼國際信息交換碼UnicodeUnicoden1616位編碼位編碼n對世界上所有語言的大多數(shù)字符進(jìn)

24、行編碼對世界上所有語言的大多數(shù)字符進(jìn)行編碼n提供擴(kuò)展能力提供擴(kuò)展能力nUnicodeUnicode兼容兼容ASCIIASCIIUnicode給每個字符提供了一個唯一的數(shù)字,不論給每個字符提供了一個唯一的數(shù)字,不論是什么平臺,不論是什么程序,不論是什么語言是什么平臺,不論是什么程序,不論是什么語言第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址2929什么是統(tǒng)一碼?什么是統(tǒng)一碼?Unicode provides a unique number for Unicode provides a unique number for every character,every character, no ma

25、tter what the platform,no matter what the platform, no matter what the program,no matter what the program,no matter what the language.no matter what the language.Unicode給每個字符提供了一個唯一的數(shù)字,給每個字符提供了一個唯一的數(shù)字,不論是什么平臺,不論是什么平臺,不論是什么程序,不論是什么程序,不論是什么語言不論是什么語言返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址30302.2 2.2 常量表達(dá)常量表達(dá)1. 1. 常

26、數(shù)常數(shù)n十、十六和二進(jìn)制形式表達(dá)的數(shù)值十、十六和二進(jìn)制形式表達(dá)的數(shù)值n以后綴字母區(qū)分,十進(jìn)制數(shù)可以不加以后綴字母區(qū)分,十進(jìn)制數(shù)可以不加n以字母以字母A AF F開頭的十六進(jìn)制常數(shù),要加前導(dǎo)開頭的十六進(jìn)制常數(shù),要加前導(dǎo)0 02. 2. 字符和字符串字符和字符串n英文縮略號括起來的單個字符或多個字符英文縮略號括起來的單個字符或多個字符n數(shù)值是每個字符對應(yīng)的數(shù)值是每個字符對應(yīng)的ASCIIASCII碼值碼值3. 3. 符號常量符號常量n使用標(biāo)識符表達(dá)一個數(shù)值使用標(biāo)識符表達(dá)一個數(shù)值n符號定義偽指令:等價(jià)符號定義偽指令:等價(jià)EQUEQU,等號,等號4. 4. 數(shù)值表達(dá)式數(shù)值表達(dá)式n用運(yùn)算符連接各種常量構(gòu)成

27、的算式用運(yùn)算符連接各種常量構(gòu)成的算式n算術(shù)運(yùn)算符:(加)算術(shù)運(yùn)算符:(加) (減)(減) * *(乘)(乘) / /(除)(除)常量具有確定數(shù)值常量具有確定數(shù)值第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址3131例例2-12-1數(shù)據(jù)表達(dá)程序數(shù)據(jù)表達(dá)程序1 10000000000000000 64 64 64 64 6464 64 64 64 64const1const1byte 100,100d,01100100b,64h, dbyte 100,100d,01100100b,64h, d0000000500000005 01 7F 80 80 FF FF01 7F 80 80 FF FFcon

28、st2const2byte 1,+127,128,-128,255,-1byte 1,+127,128,-128,255,-10000000B0000000B 69 97 20 E0 32 CE69 97 20 E0 32 CEconst3const3byte 105,-105,32,-32,32h,-32hbyte 105,-105,32,-32,32h,-32h0000001100000011 30 31 32 33 34 3530 31 32 33 34 3536 37 38 39 61 6236 37 38 39 61 6263 78 79 7A 41 4263 78 79 7A 41

29、 4243 58 59 5A43 58 59 5Aconst4const4byte 0123456789,abcxyz,ABCXYZbyte 0123456789,abcxyz,ABCXYZ第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址3232例例2-12-1數(shù)據(jù)表達(dá)程序數(shù)據(jù)表達(dá)程序2 20000002700000027 0D 0A 000D 0A 00crlfcrlfbyte 0dh,0ah,0byte 0dh,0ah,0= 0000000A= 0000000Aminintminint= 10= 10 = 000000FF= 000000FFmaxintmaxintequ 0ffhequ 0f

30、fh0000002A0000002A 0A 0F FA F50A 0F FA F5const5const5byte minint,minint+5byte minint,minint+5byte maxint-5,maxint-minintbyte maxint-5,maxint-minint0000002E0000002E 10 56 15 EB10 56 15 EBconst6const6byte 4byte 4* *4,34h+34,67h-52h,52h-67h4,34h+34,67h-52h,52h-67h第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址33332.3 2.3 變量應(yīng)用變

31、量應(yīng)用變量(變量(VariableVariable)n程序運(yùn)行中隨之發(fā)生變化的結(jié)果程序運(yùn)行中隨之發(fā)生變化的結(jié)果n保存在可讀可寫的主存空間保存在可讀可寫的主存空間實(shí)質(zhì)是主存單元的數(shù)據(jù),因而可以改變實(shí)質(zhì)是主存單元的數(shù)據(jù),因而可以改變變量需要事先定義才能使用變量需要事先定義才能使用變量具有屬性方便應(yīng)用變量具有屬性方便應(yīng)用 變量表達(dá)主存數(shù)據(jù),即存儲器操作數(shù)變量表達(dá)主存數(shù)據(jù),即存儲器操作數(shù)第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址34342.3.1 2.3.1 變量定義變量定義申請存儲空間,還可以進(jìn)行存儲單元初始化申請存儲空間,還可以進(jìn)行存儲單元初始化變量名變量名 變量定義偽指令變量定義偽指令 初值表

32、初值表變量名是用戶標(biāo)識符,表示首元素邏輯地址變量名是用戶標(biāo)識符,表示首元素邏輯地址變量定義偽指令有變量定義偽指令有nBYTEBYTE、WORDWORD、DWORDDWORD、FWORDFWORD、QWORDQWORD、TBYTETBYTE初值表是用逗號分隔的參數(shù)初值表是用逗號分隔的參數(shù)n各種形式的常量各種形式的常量n“?”表示初值不確定,即未賦初值表示初值不確定,即未賦初值n復(fù)制操作符復(fù)制操作符DUPDUP重復(fù)次數(shù)重復(fù)次數(shù) DUP(DUP(重復(fù)參數(shù)重復(fù)參數(shù)) )第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址35351. 1. 變量定義偽指令變量定義偽指令助記符:助記符:BYTE變量類型:變量類型

33、:字節(jié)字節(jié)分配一個或多個字節(jié)單元;每個數(shù)據(jù)是分配一個或多個字節(jié)單元;每個數(shù)據(jù)是字節(jié)量,也可以是字符串常量字節(jié)量,也可以是字符串常量字節(jié)量表示字節(jié)量表示8位無符號數(shù)或有符號數(shù),位無符號數(shù)或有符號數(shù),字符的字符的ASCII碼值碼值助記符:助記符:WORD變量類型:變量類型:字字分配一個或多個字單元;每個數(shù)據(jù)是字分配一個或多個字單元;每個數(shù)據(jù)是字量、量、16位數(shù)據(jù)位數(shù)據(jù)字量表示字量表示16位無符號數(shù)或有符號數(shù)、位無符號數(shù)或有符號數(shù)、16位段選擇器、位段選擇器、16位偏移地址位偏移地址助記符:助記符:DWORD變量類型:變量類型:雙字雙字分配一個或多個雙字單元;每個數(shù)據(jù)是分配一個或多個雙字單元;每個數(shù)

34、據(jù)是雙字量、雙字量、32位數(shù)據(jù)位數(shù)據(jù)雙字量表示雙字量表示32位無符號數(shù)或有符號數(shù)、位無符號數(shù)或有符號數(shù)、32位段基地址、位段基地址、32位偏移地址位偏移地址助記符:助記符:QWORD變量類型:變量類型:4個字個字分配一個或多個分配一個或多個8字節(jié)單元;字節(jié)單元;8字節(jié)量表字節(jié)量表示示64位數(shù)據(jù)位數(shù)據(jù)第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址36362. 2. 字節(jié)量數(shù)據(jù)字節(jié)量數(shù)據(jù)BYTEBYTE定義定義8 8位、字節(jié)量變量數(shù)據(jù)位、字節(jié)量變量數(shù)據(jù)可以表達(dá)可以表達(dá)n無符號整數(shù)無符號整數(shù)0 0255255n補(bǔ)碼表示的有符號整數(shù):補(bǔ)碼表示的有符號整數(shù):-128-128+127+127n一個字符(一個

35、字符(ASCIIASCII碼值)碼值)n壓縮壓縮BCDBCD碼:碼:0 09999n非壓縮非壓縮BCDBCD碼:碼:0 09 9n字符串定義使用字節(jié)變量定義字符串定義使用字節(jié)變量定義BYTE第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址3737例例2-22-2字節(jié)變量程序字節(jié)變量程序=0000000A=0000000Aminint = 10minint = 10000000000000000000 80 FF 80 00 7F00 80 FF 80 00 7Fbvar1bvar1byte 0,128,255,-128,0,+127byte 0,128,255,-128,0,+1270000000

36、60000000601 FF 26 DA 38 C801 FF 26 DA 38 C8bvar2bvar2byte 1,-1,38,-38,38h,-38hbyte 1,-1,38,-38,38h,-38h0000000C0000000C0000bvar3bvar3byte ?byte ?0000000D0000000D00000005 00000005 2424bvar4bvar4byte 5 dup ($)byte 5 dup ($)00000012000000120000000A 00 0000000A 0A 000000000A 00 0000000A 0A 00bvar5bvar5b

37、yte minint dup(0),minint dup(minint,?)byte minint dup(0),minint dup(minint,?)000000300000003000000002 02 03 00000002 0400000002 02 03 00000002 04byte 2 dup(2,3,2 dup(4)byte 2 dup(2,3,2 dup(4)第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址38383. 3. 字量數(shù)據(jù)字量數(shù)據(jù)WORDWORD定義定義1616位、字量變量數(shù)據(jù)位、字量變量數(shù)據(jù)可以表達(dá)可以表達(dá)n1616位無符號和有符號整數(shù)位無符號和有符號整數(shù)n161

38、6位段選擇器,位段選擇器,1616位偏移地址位偏移地址1616位數(shù)據(jù)含高低位數(shù)據(jù)含高低2 2個字節(jié),占個字節(jié),占2 2個連續(xù)的字節(jié)存儲單個連續(xù)的字節(jié)存儲單元元n小端方式(小端方式(Little EndianLittle Endian)n低字節(jié)數(shù)據(jù)存放在低地址存儲單元低字節(jié)數(shù)據(jù)存放在低地址存儲單元n高字節(jié)數(shù)據(jù)存放在高地址存儲單元高字節(jié)數(shù)據(jù)存放在高地址存儲單元n大端方式(大端方式(Big EndianBig Endian)n低字節(jié)數(shù)據(jù)存放在高地址存儲單元低字節(jié)數(shù)據(jù)存放在高地址存儲單元n高字節(jié)數(shù)據(jù)存放在低地址存儲單元高字節(jié)數(shù)據(jù)存放在低地址存儲單元第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址3939例

39、例2-32-3字變量程序字變量程序= 0000000A= 0000000Aminintminint= 10= 1000000000000000000000 8000 FFFF 8000 0000 7FFF0000 8000 FFFF 8000 0000 7FFFwvar1wvar1word 0,32768,65535,-32768,0,+32767word 0,32768,65535,-32768,0,+327670000000C0000000C0001 FFFF 0026 0001 FFFF 0026 FFDA 0038 FFC8FFDA 0038 FFC8wvar2wvar2word 1,

40、-1,38,-38,38h,-38hword 1,-1,38,-38,38h,-38h000000180000001800000000wvar3wvar3 word ?word ?0000001A0000001A2010 10202010 1020wvar4wvar4word 2010h,1020hword 2010h,1020h0000001E0000001E00000005 000A 000000000005 000A 0000word 5 dup(minint,?)word 5 dup(minint,?)00000032000000323139 38323139 3832wvar6wva

41、r6word 3139h,3832hword 3139h,3832h000000360000003639 31 32 3839 31 32 38bvar6bvar6byte 39h,31h,32h,38hbyte 39h,31h,32h,38h0000003A0000003A0000byte 0byte 091289128運(yùn)行結(jié)果第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址4040數(shù)據(jù)的存放順序:小端方式數(shù)據(jù)的存放順序:小端方式返回返回第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址41414. 4. 雙字量數(shù)據(jù)雙字量數(shù)據(jù)DWORDDWORD定義定義3232位、雙字量變量數(shù)據(jù)位、雙字量變量數(shù)據(jù)可以

42、表達(dá)可以表達(dá)n3232位無符號和有符號整數(shù)位無符號和有符號整數(shù)n3232位偏移地址、線性地址或段基地址位偏移地址、線性地址或段基地址3232位數(shù)據(jù)包含位數(shù)據(jù)包含4 4個字節(jié),以個字節(jié),以“高對高、低對低高對高、低對低”原則占用原則占用4 4個連續(xù)字節(jié)空間個連續(xù)字節(jié)空間示意圖示意圖第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址4242返回返回小端存儲方式小端存儲方式第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址4343例例2-42-4雙字變量程序雙字變量程序1 1=0000000A=0000000Aminint= 10minint= 10000000000000000000000000 800000

43、00 FFFFFFFF00000000 80000000 FFFFFFFF80000000 00000000 7FFFFFFF80000000 00000000 7FFFFFFFdvar1dvar1dword 0,80000000h,0ffffffffh,dword 0,80000000h,0ffffffffh,-80000000h,0,7fffffffh-80000000h,0,7fffffffh000000180000001800000001 FFFFFFFF 0000002600000001 FFFFFFFF 00000026FFFFFFDA 00000038 FFFFFFC8FFFFF

44、FDA 00000038 FFFFFFC8dvar2dvar2dword 1,-1,38,-38,38h,-38hdword 1,-1,38,-38,38h,-38h00000030000000300000000000000000dvar3dvar3dword ?dword ?000000340000003400002010 0000102000002010 00001020dword 2010h,1020hdword 2010h,1020h第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址4444例例2-42-4雙字變量程序雙字變量程序2 20000003C0000003C0000000A 000

45、0000A 000000000000000A 0000000A 00000000dvar5dvar5dword minint dup(minint,?)dword minint dup(minint,?)0000008C0000008C3832313938323139dvar6dvar6dword 38323139hdword 38323139h000000900000009039 31 32 3839 31 32 38bvar6bvar6byte 39h,31h,32h,38hbyte 39h,31h,32h,38h00000094000000940000byte 0byte 0912891

46、28運(yùn)行結(jié)果第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址45455. 5. 變量定位:指定偏移地址變量定位:指定偏移地址變量定義的存儲空間變量定義的存儲空間按照書寫的先后順序一個接著一個分配按照書寫的先后順序一個接著一個分配“ORG ORG 參數(shù)參數(shù)”控制存放的偏移地址控制存放的偏移地址org 100horg 100h; ;從偏移地址從偏移地址100H100H處安排處安排指令代碼也由匯編程序指令代碼也由匯編程序按照語句的書寫順序安排存儲空間按照語句的書寫順序安排存儲空間定位偽指令也可以用于控制代碼的偏移地址定位偽指令也可以用于控制代碼的偏移地址第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址464

47、65. 5. 變量定位:對齊地址邊界變量定位:對齊地址邊界N N字節(jié)數(shù)據(jù)起始于能夠被字節(jié)數(shù)據(jù)起始于能夠被N N整除的地址整除的地址n2 2字節(jié)、字節(jié)、1616位數(shù)據(jù)是被位數(shù)據(jù)是被2 2整除的地址(偶地址)整除的地址(偶地址)n4 4字節(jié)、字節(jié)、3232位數(shù)據(jù)是被位數(shù)據(jù)是被4 4整除的地址(模整除的地址(模4 4地址)地址)n8 8字節(jié)、字節(jié)、6464位數(shù)據(jù)是被位數(shù)據(jù)是被8 8整除的地址(模整除的地址(模8 8地址)地址)IA-32IA-32處理器允許不對齊邊界存放數(shù)據(jù),性能有下降處理器允許不對齊邊界存放數(shù)據(jù),性能有下降“ALIGN NALIGN N”控制對齊控制對齊N N字節(jié)邊界字節(jié)邊界ali

48、gn 4align 4; ;對齊對齊4 4字節(jié)地址邊界字節(jié)地址邊界第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址4747例例2-52-5變量定位程序變量定位程序org 100horg 100h 00000100 00000100 6464bvar1bvar1 byte 100byte 100align 2align 2 00000102 00000102 00640064wvar2wvar2 word 100word 100align 4align 4 00000104 00000104 0000000000000000dvar3dvar3 dword ?dword ?align 4align

49、4 00000108 00000108 0000000000000000dvar4dvar4 dword ?dword ?第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址48482.3.2 2.3.2 變量屬性變量屬性變量定義變量定義n分配存儲空間分配存儲空間n賦初值賦初值n創(chuàng)建變量名創(chuàng)建變量名變量名具有兩類屬性:變量名具有兩類屬性:地址屬性地址屬性:首個變量所在存儲單元的邏輯地址,首個變量所在存儲單元的邏輯地址,含有含有段基地址段基地址和和偏移地址偏移地址類型屬性類型屬性:變量定義的數(shù)據(jù)單位:變量定義的數(shù)據(jù)單位字節(jié)量字節(jié)量BYTEBYTE 字量字量WORDWORD 雙字量雙字量DWORDDWOR

50、D 3 3字量字量FWORD 4FWORD 4字量字量QWORDQWORD 10 10字節(jié)量字節(jié)量TBYTETBYTE第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址4949 地址操作符地址操作符地址操作符用于獲取變量名的地址屬性地址操作符用于獲取變量名的地址屬性 括起的表達(dá)式作為存儲器地址指針括起的表達(dá)式作為存儲器地址指針$ $返回當(dāng)前偏移地址返回當(dāng)前偏移地址OFFSET OFFSET 變量名變量名 返回變量名所在段的偏移地址返回變量名所在段的偏移地址SEG SEG 變量名變量名返回段基地址(實(shí)地址存儲模型)返回段基地址(實(shí)地址存儲模型)第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址5050例例2

51、-62-6變量地址屬性程序變量地址屬性程序1 1; ;數(shù)據(jù)段數(shù)據(jù)段000000000000000012 3412 34bvarbvarbyte 12h,34hbyte 12h,34horg $+10 org $+10 0000000C0000000C0001 0002 0003 0004 0005 00060001 0002 0003 0004 0005 00060007 0008 0009 000A0007 0008 0009 000Aarrayarrayword 1,2,3,4,5,6,7,8,9,10word 1,2,3,4,5,6,7,8,9,100000002000000020567

52、85678wvarwvarword 5678hword 5678h=00000016=00000016 arr_size = $-arrayarr_size = $-array=0000000B=0000000B arr_len = arr_size/2arr_len = arr_size/200000022000000229ABCDEF09ABCDEF0dvardvardword 9abcdef0hdword 9abcdef0h第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址5151例例2-62-6變量地址屬性程序變量地址屬性程序2 2; ; 代碼段代碼段0000000000000000A0 0

53、0000000 RA0 00000000 Rmov al,mov al,bvarbvar00000005000000058A 25 00000001 R8A 25 00000001 Rmov ah,mov ah,bvar+1bvar+10000000B0000000B66|8B 1D66|8B 1D00000022 R00000022 Rmov bx,mov bx,wvar2wvar20000001200000012B9 0000000BB9 0000000Bmov ecx,mov ecx,arr_lenarr_len0000001700000017BA 00000017 RBA 000000

54、17 Rmov edx,mov edx,$ $0000001C0000001CBE 00000022 RBE 00000022 Rmov esi,mov esi,offset dvaroffset dvar第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址5252例例2-62-6變量地址屬性程序變量地址屬性程序3 300000021000000218B 3E8B 3Emov edi,esimov edi,esi00000023000000238B 2D 00000022 R8B 2D 00000022 Rmov ebp,dvarmov ebp,dvar0000002900000029E8 00000

55、000 EE8 00000000 Ecall disprdcall disprdEAX=00003412, EBX=7FFDDEF0, ECX=0000000B, EDX=00401017EAX=00003412, EBX=7FFDDEF0, ECX=0000000B, EDX=00401017ESI=00405022, EDI=9ABCDEF0, EBP=9ABCDEF0, ESP=0013FFC4ESI=00405022, EDI=9ABCDEF0, EBP=9ABCDEF0, ESP=0013FFC4運(yùn)行結(jié)果第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址5353 類型操作符類型操作符類型操

56、作符使用變量名的類型屬性類型操作符使用變量名的類型屬性類型名類型名 PTR PTR 變量名變量名 將變量名按照指定的類型使用將變量名按照指定的類型使用TYPE TYPE 變量名變量名返回占用字節(jié)空間的字量數(shù)值返回占用字節(jié)空間的字量數(shù)值LENGTHOF LENGTHOF 變量名變量名返回整個變量的數(shù)據(jù)項(xiàng)數(shù)返回整個變量的數(shù)據(jù)項(xiàng)數(shù)SIZEOFSIZEOF 變量名變量名返回整個變量占用的字節(jié)數(shù)返回整個變量占用的字節(jié)數(shù)第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址5454例例2-72-7變量類型屬性程序變量類型屬性程序1 1; ;代碼段代碼段0000000000000000A1 0000000C RA1

57、0000000C Rmov eax,dword ptr arraymov eax,dword ptr array; ;獲得數(shù)據(jù)獲得數(shù)據(jù)0000000500000005BB 00000001BB 00000001mov ebx,type bvarmov ebx,type bvar; ;獲得字節(jié)類型值獲得字節(jié)類型值0000000A0000000AB9 00000002B9 00000002mov ecx,type wvarmov ecx,type wvar; ;獲得字類型值獲得字類型值0000000F0000000FBA 00000004BA 00000004mov edx,type dvarmo

58、v edx,type dvar; ;獲得雙字類型值獲得雙字類型值第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址5555例例2-72-7變量類型屬性程序變量類型屬性程序2 20000001400000014BE 0000000ABE 0000000Amov esi,lengthof arraymov esi,lengthof array ; ;獲得數(shù)據(jù)個數(shù)獲得數(shù)據(jù)個數(shù)0000001900000019BF 00000014BF 00000014mov edi,sizeof arraymov edi,sizeof array; ;獲得字節(jié)長度獲得字節(jié)長度0000001E0000001EBD 00000

59、016BD 00000016mov ebp,arr_sizemov ebp,arr_size; ;獲得字節(jié)長度獲得字節(jié)長度0000002300000023E8 00000000 EE8 00000000 Ecall disprdcall disprd EAX=00020001, EBX=00000001, ECX=00000002, EDX=00000004EAX=00020001, EBX=00000001, ECX=00000002, EDX=00000004ESI=0000000A, EDI=00000014, EBP=00000016, ESP=0013FFC4ESI=0000000A

60、, EDI=00000014, EBP=00000016, ESP=0013FFC4運(yùn)行結(jié)果第第2 2章章 數(shù)據(jù)表示和尋址數(shù)據(jù)表示和尋址56562.4 2.4 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式指令有兩部分:操作碼和操作數(shù)指令有兩部分:操作碼和操作數(shù)n操作碼:處理器要執(zhí)行哪種操作操作碼:處理器要執(zhí)行哪種操作不可缺少,用助記符表示不可缺少,用助記符表示n操作數(shù):指令執(zhí)行的參與者操作數(shù):指令執(zhí)行的參與者各種操作的對象,需要通過地址指示各種操作的對象,需要通過地址指示數(shù)據(jù)尋址方式:通過地址查找數(shù)據(jù)(操作數(shù))數(shù)據(jù)尋址方式:通過地址查找數(shù)據(jù)(操作數(shù))n立即數(shù)尋址:數(shù)據(jù)在指令代碼中,用常量表達(dá)立即數(shù)尋址:數(shù)據(jù)在指令

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論