




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、成功學(xué)院信工系成功學(xué)院信工系 張莉張莉第第4講講 變量定義及常用偽指令變量定義及常用偽指令熟悉常數(shù)的分類(lèi)及其正確的表示方法熟悉常數(shù)的分類(lèi)及其正確的表示方法了解表達(dá)式中涉及到的運(yùn)算符的功能作用了解表達(dá)式中涉及到的運(yùn)算符的功能作用掌握變量定義偽指令掌握變量定義偽指令DB/DW,理解變量在內(nèi)存存儲(chǔ),理解變量在內(nèi)存存儲(chǔ)空間中的分布空間中的分布掌握掌握OFFSET、SEG、PTR、$偽指令,了解其他常偽指令,了解其他常用地址操作符和類(lèi)型操作符用地址操作符和類(lèi)型操作符掌握字符串的輸入輸出方法掌握字符串的輸入輸出方法成功學(xué)院信工系成功學(xué)院信工系 張莉張莉第第4講講 變量定義及常用偽指令變量定義及常用偽指令硬
2、指令和偽指令硬指令和偽指令n硬指令硬指令使使CPU產(chǎn)生動(dòng)作、并在程序執(zhí)行時(shí)才處理的產(chǎn)生動(dòng)作、并在程序執(zhí)行時(shí)才處理的語(yǔ)句,如語(yǔ)句,如mov、add等等n偽指令偽指令(Directive)不產(chǎn)生不產(chǎn)生CPU動(dòng)作、在程序執(zhí)動(dòng)作、在程序執(zhí)行前由匯編程序處理的說(shuō)明性語(yǔ)句,例如,數(shù)據(jù)說(shuō)明、行前由匯編程序處理的說(shuō)明性語(yǔ)句,例如,數(shù)據(jù)說(shuō)明、變量定義等等變量定義等等n偽指令與具體的處理器類(lèi)型無(wú)關(guān),但與匯編程序的版本偽指令與具體的處理器類(lèi)型無(wú)關(guān),但與匯編程序的版本有關(guān)有關(guān) 本課程采用微軟宏匯編程序本課程采用微軟宏匯編程序 MASM 6.15成功學(xué)院信工系成功學(xué)院信工系 張莉張莉匯編語(yǔ)言程序的語(yǔ)句格式匯編語(yǔ)言程序的
3、語(yǔ)句格式 執(zhí)行性語(yǔ)句執(zhí)行性語(yǔ)句由硬指令構(gòu)成的語(yǔ)句,它通常對(duì)應(yīng)由硬指令構(gòu)成的語(yǔ)句,它通常對(duì)應(yīng)一條機(jī)器指令,出現(xiàn)在程序的代碼段中:一條機(jī)器指令,出現(xiàn)在程序的代碼段中:標(biāo)號(hào)標(biāo)號(hào): 硬指令助記符硬指令助記符 操作數(shù)操作數(shù),操作數(shù)操作數(shù);注釋?zhuān)蛔⑨?說(shuō)明性語(yǔ)句說(shuō)明性語(yǔ)句由偽指令構(gòu)成的語(yǔ)句,它通常指示由偽指令構(gòu)成的語(yǔ)句,它通常指示匯編程序如何匯編源程序:匯編程序如何匯編源程序:名字名字 偽指令助記符偽指令助記符 參數(shù)參數(shù),參數(shù)參數(shù),;注釋?zhuān)蛔⑨寴?biāo)號(hào)標(biāo)號(hào)是反映硬指令位置(邏輯地址)的標(biāo)識(shí)符,是反映硬指令位置(邏輯地址)的標(biāo)識(shí)符,后跟一個(gè)冒號(hào)分隔后跟一個(gè)冒號(hào)分隔名字名字是反映偽指令位置(邏輯地址)和屬性的標(biāo)識(shí)
4、符,是反映偽指令位置(邏輯地址)和屬性的標(biāo)識(shí)符,后跟空格或制表符分隔,后跟空格或制表符分隔,沒(méi)有一個(gè)冒號(hào)沒(méi)有一個(gè)冒號(hào)處理器指令的處理器指令的操作數(shù)操作數(shù)可以是可以是立即數(shù)、寄存器和存儲(chǔ)單元立即數(shù)、寄存器和存儲(chǔ)單元偽指令的偽指令的參數(shù)參數(shù)可以是常數(shù)、變量名、可以是常數(shù)、變量名、表達(dá)式等,可以有多個(gè),參數(shù)之間表達(dá)式等,可以有多個(gè),參數(shù)之間用逗號(hào)分隔用逗號(hào)分隔語(yǔ)句中由分號(hào)語(yǔ)句中由分號(hào)“;”開(kāi)始的部分為注釋內(nèi)容,用以增加開(kāi)始的部分為注釋內(nèi)容,用以增加源程序的可讀性源程序的可讀性必要時(shí),一個(gè)語(yǔ)句行也可以由分號(hào)開(kāi)始作為階段性注釋必要時(shí),一個(gè)語(yǔ)句行也可以由分號(hào)開(kāi)始作為階段性注釋匯編程序在翻譯源程序時(shí)將跳過(guò)該
5、部分,不對(duì)它們做任何處理匯編程序在翻譯源程序時(shí)將跳過(guò)該部分,不對(duì)它們做任何處理成功學(xué)院信工系成功學(xué)院信工系 張莉張莉標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符(Identifier)一般最多由)一般最多由31個(gè)字母、數(shù)字及規(guī)定的個(gè)字母、數(shù)字及規(guī)定的特殊符號(hào)(如特殊符號(hào)(如 _、 、$、?、%)組成,不能以數(shù)字開(kāi)頭。)組成,不能以數(shù)字開(kāi)頭。默認(rèn)情況下,匯編程序不區(qū)別標(biāo)識(shí)符中的字母大小寫(xiě)默認(rèn)情況下,匯編程序不區(qū)別標(biāo)識(shí)符中的字母大小寫(xiě)一個(gè)程序中,每個(gè)標(biāo)識(shí)符的定義是唯一的,還不能是匯編一個(gè)程序中,每個(gè)標(biāo)識(shí)符的定義是唯一的,還不能是匯編語(yǔ)言采用的保留字語(yǔ)言采用的保留字o硬指令助記符硬指令助記符例如:例如:MOV、ADDo
6、偽指令助記符偽指令助記符例如:例如:DB、EQUo操作符操作符例如:例如:OFFSET、PTRo寄存器名寄存器名例如:例如:AX、CSo預(yù)定義符號(hào)預(yù)定義符號(hào)例如:例如:data成功學(xué)院信工系成功學(xué)院信工系 張莉張莉第第4講講 變量定義及常用偽指令變量定義及常用偽指令1 數(shù)值型參數(shù)數(shù)值型參數(shù)2 變量定義偽指令變量定義偽指令3 變量和標(biāo)號(hào)的屬性變量和標(biāo)號(hào)的屬性4 字符串的輸入輸出方法字符串的輸入輸出方法成功學(xué)院信工系成功學(xué)院信工系 張莉張莉1 數(shù)值型參數(shù)數(shù)值型參數(shù)在源程序語(yǔ)句格式的在源程序語(yǔ)句格式的4個(gè)組成部分中,參數(shù)是指令的操作對(duì)個(gè)組成部分中,參數(shù)是指令的操作對(duì)象(學(xué)習(xí)硬指令時(shí)被稱為操作數(shù)),參
7、數(shù)之間用逗號(hào)分隔象(學(xué)習(xí)硬指令時(shí)被稱為操作數(shù)),參數(shù)之間用逗號(hào)分隔匯編語(yǔ)言程序中,指令參數(shù)有數(shù)值型,它的主要形式是常匯編語(yǔ)言程序中,指令參數(shù)有數(shù)值型,它的主要形式是常數(shù)和數(shù)值表達(dá)式;數(shù)和數(shù)值表達(dá)式;匯編語(yǔ)言程序中,指令參數(shù)還有地址型,它的主要形式是標(biāo)匯編語(yǔ)言程序中,指令參數(shù)還有地址型,它的主要形式是標(biāo)號(hào)和名字(變量名、段名、過(guò)程名等)號(hào)和名字(變量名、段名、過(guò)程名等)成功學(xué)院信工系成功學(xué)院信工系 張莉張莉(1) 常數(shù)常數(shù)常數(shù)(常量)常數(shù)(常量)表示一個(gè)固定的數(shù)值表示一個(gè)固定的數(shù)值它又分成多種形式:它又分成多種形式:(1)十進(jìn)制常數(shù))十進(jìn)制常數(shù)(2)十六進(jìn)制常數(shù))十六進(jìn)制常數(shù)(3)二進(jìn)制常數(shù))二
8、進(jìn)制常數(shù)(4)八進(jìn)制常數(shù))八進(jìn)制常數(shù)(5)字符串常數(shù))字符串常數(shù)(6)符號(hào)常數(shù))符號(hào)常數(shù)成功學(xué)院信工系成功學(xué)院信工系 張莉張莉十進(jìn)制常數(shù)十進(jìn)制常數(shù)由由0 9數(shù)字組成,以字母數(shù)字組成,以字母D或或d結(jié)尾結(jié)尾缺省情況下,后綴缺省情況下,后綴D或或d可以省略可以省略匯編語(yǔ)言大小寫(xiě)不敏感,匯編語(yǔ)言大小寫(xiě)不敏感,D和和d通用通用例如:例如:100、255DDEBUG下默認(rèn)的是十六進(jìn)制數(shù)據(jù),但在編寫(xiě)匯編語(yǔ)言下默認(rèn)的是十六進(jìn)制數(shù)據(jù),但在編寫(xiě)匯編語(yǔ)言源程序的時(shí)候默認(rèn)的是十進(jìn)制!源程序的時(shí)候默認(rèn)的是十進(jìn)制!成功學(xué)院信工系成功學(xué)院信工系 張莉張莉十六進(jìn)制常數(shù)十六進(jìn)制常數(shù)由由09、AF組成,以字母組成,以字母H或或
9、h結(jié)尾結(jié)尾以字母以字母AF開(kāi)頭的十六進(jìn)制數(shù),前面要用開(kāi)頭的十六進(jìn)制數(shù),前面要用0表表達(dá),以避免與其他符號(hào)混淆達(dá),以避免與其他符號(hào)混淆匯編語(yǔ)言大小寫(xiě)不敏感,匯編語(yǔ)言大小寫(xiě)不敏感, H和和h 通用通用例如:例如:64H、0FFh、0B800H成功學(xué)院信工系成功學(xué)院信工系 張莉張莉二進(jìn)制常數(shù)二進(jìn)制常數(shù)由由0或或1兩個(gè)數(shù)字組成,以字母兩個(gè)數(shù)字組成,以字母B或或b結(jié)尾結(jié)尾匯編語(yǔ)言大小寫(xiě)不敏感,匯編語(yǔ)言大小寫(xiě)不敏感,B和和b通用通用例如:例如:01101100B成功學(xué)院信工系成功學(xué)院信工系 張莉張莉字符串常數(shù)字符串常數(shù)用單引號(hào)或雙引號(hào)括起來(lái)用單引號(hào)或雙引號(hào)括起來(lái)的單個(gè)字符或多個(gè)字的單個(gè)字符或多個(gè)字符,其數(shù)
10、值是每個(gè)字符對(duì)應(yīng)的符,其數(shù)值是每個(gè)字符對(duì)應(yīng)的ASCII碼的值碼的值例如:例如:d = 64HAB= 4142HHello, Everybody !成功學(xué)院信工系成功學(xué)院信工系 張莉張莉符號(hào)常數(shù)符號(hào)常數(shù)利用一個(gè)標(biāo)識(shí)符表達(dá)的一個(gè)數(shù)值,用于常量定義利用一個(gè)標(biāo)識(shí)符表達(dá)的一個(gè)數(shù)值,用于常量定義等價(jià)等價(jià)EQU偽指令偽指令符號(hào)名符號(hào)名 EQU EQU 數(shù)值表達(dá)式數(shù)值表達(dá)式符號(hào)名符號(hào)名 EQU EQU 等號(hào)等號(hào)=偽指令偽指令符號(hào)名符號(hào)名 = = 數(shù)值表達(dá)式數(shù)值表達(dá)式常數(shù)若使用有意義的符號(hào)名來(lái)表示,可以提高程序的可常數(shù)若使用有意義的符號(hào)名來(lái)表示,可以提高程序的可讀性,同時(shí)更具有通用性讀性,同時(shí)更具有通用性EQU
11、EQU不允許重復(fù)賦值,但不允許重復(fù)賦值,但= =則無(wú)此限制則無(wú)此限制成功學(xué)院信工系成功學(xué)院信工系 張莉張莉符號(hào)定義符號(hào)定義DosWriteChar equ 2DosWriteChar equ 2CarriageReturn = 13CarriageReturn = 13CallDOS equ CallDOS equ 符號(hào)應(yīng)用(左邊程序段等價(jià)右側(cè)的符號(hào)形式)符號(hào)應(yīng)用(左邊程序段等價(jià)右側(cè)的符號(hào)形式)mov ah,2mov ah,2;mov ah,DosWriteChar;mov ah,DosWriteCharmov dl,13mov dl,13;mov dl,CarriageReturn;mov
12、dl,CarriageReturnint 21hint 21h;CallDOS;CallDOS符號(hào)常數(shù)實(shí)例符號(hào)常數(shù)實(shí)例成功學(xué)院信工系成功學(xué)院信工系 張莉張莉(2) 數(shù)值表達(dá)式數(shù)值表達(dá)式數(shù)值表達(dá)式一般是指由運(yùn)算符連接的各種常數(shù)所構(gòu)成的表數(shù)值表達(dá)式一般是指由運(yùn)算符連接的各種常數(shù)所構(gòu)成的表達(dá)式達(dá)式匯編程序在匯編過(guò)程中計(jì)算表達(dá)式,最終得到一個(gè)數(shù)值匯編程序在匯編過(guò)程中計(jì)算表達(dá)式,最終得到一個(gè)數(shù)值程序運(yùn)行之前,就已經(jīng)計(jì)算出了表達(dá)式;所以,程序運(yùn)行程序運(yùn)行之前,就已經(jīng)計(jì)算出了表達(dá)式;所以,程序運(yùn)行速度沒(méi)有變慢,但增強(qiáng)程序的可讀性速度沒(méi)有變慢,但增強(qiáng)程序的可讀性成功學(xué)院信工系成功學(xué)院信工系 張莉張莉運(yùn)算符運(yùn)算
13、符算術(shù)運(yùn)算符算術(shù)運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算符移位運(yùn)算符移位運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符高低分離符高低分離符成功學(xué)院信工系成功學(xué)院信工系 張莉張莉算術(shù)算術(shù)運(yùn)算符運(yùn)算符實(shí)現(xiàn)加、減、乘、除、取余的算術(shù)運(yùn)算實(shí)現(xiàn)加、減、乘、除、取余的算術(shù)運(yùn)算+ - * / MODmov ax,3mov ax,3* *4+54+5; ;等價(jià)于等價(jià)于 mov ax,17mov ax,17MODMOD也稱為取模,它產(chǎn)生除法之后的余數(shù),如也稱為取模,它產(chǎn)生除法之后的余數(shù),如19 mod 7 19 mod 7 結(jié)果是結(jié)果是5 5加加+和減和減-運(yùn)算符還可以用于地址表達(dá)式運(yùn)算符還可以用于地址表達(dá)式除加、減外,其他運(yùn)算符的參數(shù)必須是整數(shù)
14、除加、減外,其他運(yùn)算符的參數(shù)必須是整數(shù)成功學(xué)院信工系成功學(xué)院信工系 張莉張莉邏輯邏輯運(yùn)算符運(yùn)算符實(shí)現(xiàn)按位相與、相或、異或、求反的邏輯運(yùn)算實(shí)現(xiàn)按位相與、相或、異或、求反的邏輯運(yùn)算AND OR XOR NOTmov al,03h AND 45hmov al,03h AND 45h; ;等價(jià)于等價(jià)于 mov al,01hmov al,01h成功學(xué)院信工系成功學(xué)院信工系 張莉張莉移位移位運(yùn)算符運(yùn)算符實(shí)現(xiàn)對(duì)數(shù)值的左移、右移的邏輯操作;移入低實(shí)現(xiàn)對(duì)數(shù)值的左移、右移的邏輯操作;移入低位或高位的是位或高位的是0 0SHL SHR格式為:格式為:數(shù)值表達(dá)式數(shù)值表達(dá)式 SHL/SHR SHL/SHR 移位次數(shù)移位
15、次數(shù)mov al,0101b SHL (2mov al,0101b SHL (2* *2)2); ;等價(jià)于等價(jià)于 mov al,01010000bmov al,01010000b成功學(xué)院信工系成功學(xué)院信工系 張莉張莉關(guān)系關(guān)系運(yùn)算符運(yùn)算符用于比較和測(cè)試符號(hào)數(shù)值用于比較和測(cè)試符號(hào)數(shù)值EQ NE GT LT GE LEMASMMASM用用0FFFFH0FFFFH(補(bǔ)碼(補(bǔ)碼 -1-1)表示條件為真)表示條件為真MASMMASM用用0000H0000H表示條件為假表示條件為假mov bx,PORT LT 5mov bx,PORT LT 5; ;當(dāng)當(dāng)PORT5PORT5時(shí),匯編結(jié)果為時(shí),匯編結(jié)果為mov
16、 bx,0ffffhmov bx,0ffffh; ;否則,匯編結(jié)果為否則,匯編結(jié)果為mov bx,0000hmov bx,0000h成功學(xué)院信工系成功學(xué)院信工系 張莉張莉高低分離符高低分離符取數(shù)值的高半部分或低半部分取數(shù)值的高半部分或低半部分HIGH LOW HIGHWORD LOWWORDHIGHHIGH、LOWLOW從一個(gè)從一個(gè)字?jǐn)?shù)值字?jǐn)?shù)值或或符號(hào)常量符號(hào)常量中得到高、低字節(jié)中得到高、低字節(jié)mov ah,HIGH 8765hmov ah,HIGH 8765h; ;等價(jià)于等價(jià)于mov ah,87hmov ah,87h從從MASM 6.0MASM 6.0引入的引入的HIGHWORDHIGHWO
17、RD、LOWWORDLOWWORD取一個(gè)取一個(gè)符號(hào)常量符號(hào)常量(不能是其他常數(shù))的高字或低字部分(不能是其他常數(shù))的高字或低字部分dd_value equ 0ffff1234hdd_value equ 0ffff1234h; ;定義一個(gè)符號(hào)常量定義一個(gè)符號(hào)常量mov ax,LOWWORD dd_valuemov ax,LOWWORD dd_value; ;等價(jià)于等價(jià)于mov ax,1234hmov ax,1234h成功學(xué)院信工系成功學(xué)院信工系 張莉張莉2 變量定義偽指令變量定義偽指令變量定義(變量定義(Define)偽指令為變量申請(qǐng)固定長(zhǎng)度)偽指令為變量申請(qǐng)固定長(zhǎng)度的存儲(chǔ)空間,并可同時(shí)將相應(yīng)的
18、存儲(chǔ)單元初始化的存儲(chǔ)空間,并可同時(shí)將相應(yīng)的存儲(chǔ)單元初始化變量名變量名 偽指令助記符偽指令助記符 初值表初值表 變量定義偽指令最常使用變量定義偽指令最常使用成功學(xué)院信工系成功學(xué)院信工系 張莉張莉變量名變量名變量名為用戶自定義標(biāo)識(shí)符,變量名為用戶自定義標(biāo)識(shí)符,表示初值表首元素的邏表示初值表首元素的邏輯地址輯地址;用這個(gè)符號(hào)表示地址,常稱為符號(hào)地址;用這個(gè)符號(hào)表示地址,常稱為符號(hào)地址設(shè)置變量名是為了方便存取它指示的存儲(chǔ)單元設(shè)置變量名是為了方便存取它指示的存儲(chǔ)單元變量名可以沒(méi)有。這種情況,匯編程序?qū)⒅苯訛槌踔底兞棵梢詻](méi)有。這種情況,匯編程序?qū)⒅苯訛槌踔当矸峙淇臻g,無(wú)符號(hào)地址表分配空間,無(wú)符號(hào)地址成功
19、學(xué)院信工系成功學(xué)院信工系 張莉張莉初值表初值表初值表是用逗號(hào)分隔的參數(shù)初值表是用逗號(hào)分隔的參數(shù)主要由常數(shù)、表達(dá)式或?、主要由常數(shù)、表達(dá)式或?、DUP組成組成?表示初值不確定,即未賦初值;表示初值不確定,即未賦初值;DUP表示重復(fù)初值表示重復(fù)初值DUP的格式為:的格式為:重復(fù)次數(shù)重復(fù)次數(shù) DUP(重復(fù)參數(shù)重復(fù)參數(shù))成功學(xué)院信工系成功學(xué)院信工系 張莉張莉變量定義偽指令助記符變量定義偽指令助記符變量定義偽指令根據(jù)申請(qǐng)的主存空間單位分類(lèi)變量定義偽指令根據(jù)申請(qǐng)的主存空間單位分類(lèi)DB定義字節(jié)偽指令定義字節(jié)偽指令DW定義字偽指令定義字偽指令DD定義雙字偽指令定義雙字偽指令DF定義定義3字偽指令字偽指令DQ定
20、義定義4字偽指令字偽指令DT定義定義10字節(jié)偽指令字節(jié)偽指令還有定位偽指令還有定位偽指令成功學(xué)院信工系成功學(xué)院信工系 張莉張莉定義字節(jié)單元偽指令定義字節(jié)單元偽指令DBDBDB偽指令用于分配一個(gè)或多個(gè)字節(jié)單元,并可以將它偽指令用于分配一個(gè)或多個(gè)字節(jié)單元,并可以將它們初始化為指定值們初始化為指定值初值表中每個(gè)數(shù)據(jù)一定是字節(jié)量(初值表中每個(gè)數(shù)據(jù)一定是字節(jié)量(Byte),存放一個(gè)),存放一個(gè)8位數(shù)據(jù):位數(shù)據(jù):n 可以是可以是0255的無(wú)符號(hào)數(shù)的無(wú)符號(hào)數(shù)n 或是或是128127帶符號(hào)數(shù)帶符號(hào)數(shù) 也可以是字符串常數(shù)也可以是字符串常數(shù)成功學(xué)院信工系成功學(xué)院信工系 張莉張莉datadatasegmentseg
21、ment;數(shù)據(jù)段;數(shù)據(jù)段X Xdb a,0-5db a,0-5db 2 dup(100),?db 2 dup(100),?Y Ydb ABCdb ABCdatadataendsends字節(jié)單元定義實(shí)例字節(jié)單元定義實(shí)例成功學(xué)院信工系成功學(xué)院信工系 張莉張莉mov al,Xmov al,X; ;此處此處X X表示它的第表示它的第1 1個(gè)數(shù)據(jù),故個(gè)數(shù)據(jù),故ALaALadec X+1dec X+1; ;對(duì)對(duì)X X為始的第為始的第2 2個(gè)數(shù)據(jù)減個(gè)數(shù)據(jù)減1 1,故成為,故成為-6-6mov Y,almov Y,al; ;現(xiàn)在現(xiàn)在Y Y這個(gè)字符串成為這個(gè)字符串成為 aaBCBC字節(jié)變量的應(yīng)用字節(jié)變量的應(yīng)用成
22、功學(xué)院信工系成功學(xué)院信工系 張莉張莉定義字單元偽指令定義字單元偽指令DWDWDW偽指令用于分配一個(gè)或多個(gè)字單元,并可以將偽指令用于分配一個(gè)或多個(gè)字單元,并可以將它們初始化為指定值它們初始化為指定值初值表中每個(gè)數(shù)據(jù)一定是字量(初值表中每個(gè)數(shù)據(jù)一定是字量(Word),一個(gè)字),一個(gè)字單元可用于存放任何單元可用于存放任何16位數(shù)據(jù):位數(shù)據(jù):n 一個(gè)段地址一個(gè)段地址n一個(gè)偏移地址一個(gè)偏移地址n 兩個(gè)字符兩個(gè)字符n 065535之間的無(wú)符號(hào)數(shù)之間的無(wú)符號(hào)數(shù) 3276832767之間的帶符號(hào)數(shù)之間的帶符號(hào)數(shù)成功學(xué)院信工系成功學(xué)院信工系 張莉張莉datadatasegmentsegment;數(shù)據(jù)段;數(shù)據(jù)段c
23、ountcount dw 8000h,?,ABdw 8000h,?,ABmaxintmaxint equ 64hequ 64hnumbernumber dw maxintdw maxintarrayarray dw maxint dup(0)dw maxint dup(0)datadataendsends字單元定義實(shí)例字單元定義實(shí)例成功學(xué)院信工系成功學(xué)院信工系 張莉張莉定義雙字單元偽指令定義雙字單元偽指令DDDDDD偽指令偽指令用于分配一個(gè)或多個(gè)雙字單元,并可以將它用于分配一個(gè)或多個(gè)雙字單元,并可以將它們初始化為指定值們初始化為指定值初值表中每個(gè)數(shù)據(jù)是一個(gè)初值表中每個(gè)數(shù)據(jù)是一個(gè)3232位的雙字
24、量(位的雙字量(Double Double WordWord):):n 可以是有符號(hào)或無(wú)符號(hào)的可以是有符號(hào)或無(wú)符號(hào)的3232位整數(shù)位整數(shù)n 也可以用來(lái)表達(dá)也可以用來(lái)表達(dá)1616位段地址(高位字)和位段地址(高位字)和1616位的位的偏移地址(低位字)的遠(yuǎn)指針偏移地址(低位字)的遠(yuǎn)指針varddvarddDD 0,?,12345678hDD 0,?,12345678hfarpointfarpointDD 00400078hDD 00400078h成功學(xué)院信工系成功學(xué)院信工系 張莉張莉字變量和字常量的定義:字變量和字常量的定義:WNUMWNUM EQU 5678HEQU 5678H; ;定義定義W
25、NUMWNUM為常量為常量COUNT DW 20HCOUNT DW 20H; ;定義定義COUNTCOUNT變量,假設(shè)在數(shù)據(jù)段的偏移地址為變量,假設(shè)在數(shù)據(jù)段的偏移地址為10H10H字變量和字常量的應(yīng)用:字變量和字常量的應(yīng)用:MOV AX,BX+SI+WNUMMOV AX,BX+SI+WNUMMOV AX,COUNTMOV AX,COUNTMOV AX,SI+COUNTMOV AX,SI+COUNTLEA BX,COUNTLEA BX,COUNT字變量和字常量字變量和字常量; MOV AX,BX+SI+5678H; MOV AX,0010H; MOV AX,COUNTSI; MOV AX,SI+
26、10H; LEA BX,0010H成功學(xué)院信工系成功學(xué)院信工系 張莉張莉定位偽指令定位偽指令定位偽指令控制數(shù)據(jù)的偏移地址定位偽指令控制數(shù)據(jù)的偏移地址ORGORG 參數(shù)參數(shù)ORGORG偽指令是將當(dāng)前偏移地址指針指向參數(shù)表達(dá)的偽指令是將當(dāng)前偏移地址指針指向參數(shù)表達(dá)的偏移地址:偏移地址:ORG 100hORG 100h; ;從從100h100h處安排數(shù)據(jù)或程序處安排數(shù)據(jù)或程序ORG $+10ORG $+10; ;使偏移地址加使偏移地址加1010,即跳過(guò),即跳過(guò)1010個(gè)字節(jié)空間個(gè)字節(jié)空間MASMMASM中,符號(hào)中,符號(hào)“$ $”表示當(dāng)前偏移地址值表示當(dāng)前偏移地址值array DB 12,34,56a
27、rray DB 12,34,56len equ $-array len equ $-array ; ;記錄變量記錄變量arrayarray所占字節(jié)數(shù)所占字節(jié)數(shù)成功學(xué)院信工系成功學(xué)院信工系 張莉張莉統(tǒng)計(jì)一個(gè)字變量中包含數(shù)據(jù)元素的個(gè)統(tǒng)計(jì)一個(gè)字變量中包含數(shù)據(jù)元素的個(gè)數(shù)數(shù).model small.stack.datav_word dw 3322h,6*4,3 dup (2),?, abcount equ ($-v_word)/2.code.startupmov dl,countadd dl,30hmov ah,02hint 21h.exit 0end成功學(xué)院信工系成功學(xué)院信工系 張莉張莉例題例題 .m
28、odel small .model small .stack .stack .data .dataX Xdw 5dw 5Y Ydw 6dw 6Z Zdw 7dw 7W Wdw ?dw ? .code .code.startup.startupmov ax,Xmov ax,Xadd ax,Yadd ax,Yadd ax,Zadd ax,Zmov W,axmov W,ax.exit 0.exit 0endend設(shè)有設(shè)有3個(gè)字變量個(gè)字變量X,Y和和Z,初值分別為,初值分別為5,6和和7,試求出三,試求出三者之和,并存入字變量者之和,并存入字變量W中。中。成功學(xué)院信工系成功學(xué)院信工系 張莉張莉3 變量
29、和標(biāo)號(hào)的屬性變量和標(biāo)號(hào)的屬性 地址屬性地址屬性v標(biāo)號(hào)和名字對(duì)應(yīng)存儲(chǔ)單元的邏輯地址標(biāo)號(hào)和名字對(duì)應(yīng)存儲(chǔ)單元的邏輯地址v邏輯地址包括:段地址和偏移地址邏輯地址包括:段地址和偏移地址 類(lèi)型屬性類(lèi)型屬性v標(biāo)號(hào)、子程序名的類(lèi)型可以是標(biāo)號(hào)、子程序名的類(lèi)型可以是NEAR(近)和(近)和FAR(遠(yuǎn)),分別表示段內(nèi)或段間(遠(yuǎn)),分別表示段內(nèi)或段間v變量名的類(lèi)型可以是變量名的類(lèi)型可以是BYTE(字節(jié))、(字節(jié))、WORD(字)(字)和和DWORD(雙字)等(雙字)等成功學(xué)院信工系成功學(xué)院信工系 張莉張莉地址操作符地址操作符取得名字或標(biāo)號(hào)的段地址和偏移地址兩個(gè)屬性取得名字或標(biāo)號(hào)的段地址和偏移地址兩個(gè)屬性 將括起的表達(dá)
30、式作為存儲(chǔ)器地址將括起的表達(dá)式作為存儲(chǔ)器地址$ $當(dāng)前偏移地址當(dāng)前偏移地址:采用指定的段地址寄存器采用指定的段地址寄存器OFFSET OFFSET 名字名字/ /標(biāo)號(hào)標(biāo)號(hào)返回名字或標(biāo)號(hào)的偏移地址返回名字或標(biāo)號(hào)的偏移地址SEG SEG 名字名字/ /標(biāo)號(hào)標(biāo)號(hào)返回名字或標(biāo)號(hào)的段地址返回名字或標(biāo)號(hào)的段地址成功學(xué)院信工系成功學(xué)院信工系 張莉張莉類(lèi)型名類(lèi)型名 PTR 名字名字/標(biāo)號(hào)標(biāo)號(hào)PTRPTR操作符使名字或標(biāo)號(hào)具有指定的類(lèi)型操作符使名字或標(biāo)號(hào)具有指定的類(lèi)型類(lèi)型名類(lèi)型名可以是可以是BYTE/WORD/DWORD/FWORD/QWORD/TBYTEBYTE/WORD/DWORD/FWORD/QWORD/
31、TBYTE或者是或者是NEAR/FARNEAR/FARmov al,byte mov al,byte ptrptr w_var w_var;w_var;w_var是一個(gè)字變量是一個(gè)字變量使用使用PTRPTR操作符,可以臨時(shí)改變名字或標(biāo)號(hào)的類(lèi)型操作符,可以臨時(shí)改變名字或標(biāo)號(hào)的類(lèi)型成功學(xué)院信工系成功學(xué)院信工系 張莉張莉4 字符串的輸入輸出方法字符串的輸入輸出方法同字符的輸入輸出類(lèi)似,字符串的輸入輸出也采用同字符的輸入輸出類(lèi)似,字符串的輸入輸出也采用DOS提供給用戶的用于調(diào)用系統(tǒng)功能的提供給用戶的用于調(diào)用系統(tǒng)功能的21H號(hào)中斷來(lái)實(shí)現(xiàn)。號(hào)中斷來(lái)實(shí)現(xiàn)。通常按照如下通常按照如下4 4個(gè)步驟進(jìn)行:個(gè)步驟進(jìn)行
32、: 在在AHAH寄存器中設(shè)置系統(tǒng)功能調(diào)用號(hào)寄存器中設(shè)置系統(tǒng)功能調(diào)用號(hào) 在指定寄存器中設(shè)置入口參數(shù)在指定寄存器中設(shè)置入口參數(shù) 執(zhí)行指令執(zhí)行指令I(lǐng)NT 21HINT 21H(或(或ROM-BIOSROM-BIOS的中斷向量號(hào))實(shí)現(xiàn)中的中斷向量號(hào))實(shí)現(xiàn)中斷服務(wù)程序的功能調(diào)用斷服務(wù)程序的功能調(diào)用 根據(jù)出口參數(shù)分析功能調(diào)用執(zhí)行情況根據(jù)出口參數(shù)分析功能調(diào)用執(zhí)行情況成功學(xué)院信工系成功學(xué)院信工系 張莉張莉字符串輸出的功能調(diào)用字符串輸出的功能調(diào)用DOS功能調(diào)用功能調(diào)用INT 21Hn功能號(hào):功能號(hào):AH09Hn入口參數(shù):入口參數(shù):DS:DX欲顯示字符串在主存中的首地址欲顯示字符串在主存中的首地址字符串應(yīng)以字符串
33、應(yīng)以$(24H)結(jié)束)結(jié)束n功能:在顯示器輸出指定的字符串功能:在顯示器輸出指定的字符串可以輸出回車(chē)(可以輸出回車(chē)(0DH)和換行()和換行(0AH)字符產(chǎn)生)字符產(chǎn)生回車(chē)和換行的作用回車(chē)和換行的作用成功學(xué)院信工系成功學(xué)院信工系 張莉張莉例:顯示字符串例:顯示字符串.model small.model small.stack.stack.data.data b u f 1 d b H e l l o , , 0 d h , 0 a h , t h i s i s a n b u f 1 d b H e l l o , , 0 d h , 0 a h , t h i s i s a n exam
34、ple.$,0dh,0ahexample.$,0dh,0ah buf2 db -END-$ buf2 db -END-$.code.code.startup.startupmov dx, mov dx, offsetoffset buf1 buf1mov ah, 9mov ah, 9int 21hint 21h lea lea dx, buf2dx, buf2mov ah, 9mov ah, 9int 21hint 21h.exit 0 .exit 0 end end 如果去掉如果去掉“$”顯示的結(jié)果又會(huì)是什么?顯示的結(jié)果又會(huì)是什么?成功學(xué)院信工系成功學(xué)院信工系 張莉張莉字符串輸入的功能調(diào)用字符串輸入的功能調(diào)用DOS功能調(diào)用功能調(diào)用INT 21Hn功能號(hào):功能號(hào):AH0AHn入口參數(shù):入口參數(shù):DS:DX緩沖區(qū)首地址緩沖區(qū)首地址執(zhí)行該功能調(diào)用時(shí),用戶按鍵,最后用回車(chē)確認(rèn)執(zhí)行該功能調(diào)用時(shí),用戶按鍵,最后用回車(chē)確認(rèn)本調(diào)用可執(zhí)行全部標(biāo)準(zhǔn)鍵盤(pán)編輯命令;用戶按回車(chē)鍵本調(diào)用可執(zhí)行全部標(biāo)準(zhǔn)鍵盤(pán)編輯命令;用戶按回車(chē)鍵結(jié)束輸入,如按結(jié)束輸入,如按CtrlBreak或或Ctrl
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政辦公設(shè)備使用操作規(guī)程?
- 《醫(yī)學(xué)英語(yǔ)視聽(tīng)說(shuō)第二版》課件unit6
- 2025年公共與私法考試試題及答案
- 《商品拍攝第二版》課件學(xué)習(xí)情境三
- 2025年公共藝術(shù)與設(shè)計(jì)考試試題及答案
- 杏園護(hù)理教學(xué)能手
- 2025年心理衛(wèi)生促進(jìn)與心理治療技能測(cè)試試題及答案
- 子宮頸癌患者護(hù)理
- 兒童飲食衛(wèi)生習(xí)慣培養(yǎng)指南
- 2025年兒童心理發(fā)展與教育知識(shí)考試題及答案
- 消除艾滋病、梅毒和乙肝母嬰傳播項(xiàng)目工作制度及流程(模板)
- 2024風(fēng)電建設(shè)項(xiàng)目水土保持技術(shù)標(biāo)準(zhǔn)
- 高中英語(yǔ)新課標(biāo)3000詞匯表(新高考)
- 大豆病蟲(chóng)害的綜合防治
- 妊娠期用藥安全課件
- 體育場(chǎng)館消防控制室操作規(guī)范
- 《中國(guó)政法大學(xué)》課件
- 國(guó)開(kāi)學(xué)習(xí)網(wǎng)《大數(shù)據(jù)技術(shù)概論》形考任務(wù)1-4答案
- 英語(yǔ)研究報(bào)告范文
- 右膝關(guān)節(jié)置換術(shù)護(hù)理個(gè)案
- 高中數(shù)學(xué)教師資格考試學(xué)科知識(shí)與教學(xué)能力試題及答案指導(dǎo)(2024年)
評(píng)論
0/150
提交評(píng)論