版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、工業(yè)用微型計(jì)算機(jī)第三章 匯編語(yǔ)言程序設(shè)計(jì) 程序是一組為完成某種功能而按一定順序(由算法確定)編排的指令序列。 本章將首先介紹8086宏匯編語(yǔ)言的基本語(yǔ)法及常用偽指令,然后用實(shí)例說(shuō)明8086宏匯編語(yǔ)言源程序的設(shè)計(jì)方法。機(jī)器語(yǔ)言:當(dāng)指令和數(shù)據(jù)都用二進(jìn)制代碼表示時(shí),計(jì)算機(jī)能夠直接識(shí)別與執(zhí)行。高級(jí)語(yǔ)言:是完全獨(dú)立于機(jī)器的通用語(yǔ)言,效率低。面向過(guò)程、面向?qū)ο?,必須譯成機(jī)器語(yǔ)言。匯編語(yǔ)言:匯編語(yǔ)言是一種用符號(hào)表示的、面向CPU指令系統(tǒng)的程序設(shè)計(jì)語(yǔ)言。是用指令的助記符、符號(hào)地址、標(biāo)號(hào)等編寫(xiě)程序的語(yǔ)言 。(匯編語(yǔ)言程序是機(jī)器語(yǔ)言程序的符號(hào)表示)用匯編語(yǔ)言編寫(xiě)程序能夠直接利用硬件系統(tǒng)的特性(如寄存器、標(biāo)志、中斷
2、系統(tǒng)等),直接對(duì)位、字節(jié)、字、寄存器或存儲(chǔ)單元、I/O端口進(jìn)行處理,同時(shí)也能直接使用CPU指令系統(tǒng)提供的各種尋址方式,編制出高質(zhì)量的程序。程序目標(biāo)代碼占用內(nèi)存少,執(zhí)行速度快,效率高,具有實(shí)時(shí)性。匯編程序的作用將源程序翻譯成機(jī)器語(yǔ)言程序。按用戶(hù)要求自動(dòng)分配存儲(chǔ)區(qū)域(如程序區(qū)、數(shù)據(jù)區(qū)等)。自動(dòng)地把各種進(jìn)制數(shù) 二進(jìn)制數(shù)。把字符 ASCII碼。計(jì)算表達(dá)式的值。自動(dòng)對(duì)源程序進(jìn)行檢查,指出語(yǔ)法錯(cuò)誤(如非法格式、未定義的助記符、標(biāo)號(hào)、漏掉操作數(shù)等)一、匯編語(yǔ)言的程序結(jié)構(gòu)與語(yǔ)句格式(一)、匯編語(yǔ)言源程序的框架結(jié)構(gòu)1、源程序的結(jié)構(gòu)特點(diǎn)(1)、按邏輯段組織源程序,即源程序由若干個(gè)邏輯段組成,每段由偽指令SEGME
3、NT開(kāi)始、由ENDS結(jié)束。(2)、在代碼段起始處,用ASSUME偽指令說(shuō)明各個(gè)段Reg與邏輯段的關(guān)系,并在程序起始處設(shè)置段Reg的初值(代碼段CS除外)。(3)、每段由若干語(yǔ)句行組成,每行只有一條語(yǔ)句且不能超過(guò)128個(gè)字符,允許有后續(xù)行。整個(gè)源程序以END結(jié)束,它通知匯編程序停止匯編。END后的START標(biāo)號(hào)為程序運(yùn)行時(shí)的起始地址。(4)、每條語(yǔ)句由4個(gè)字段構(gòu)成。各字段間用空格分開(kāi)。(5)、源程序中設(shè)有返回DOS的指令語(yǔ)句,使程序執(zhí)行完后返回DOS系統(tǒng)的命令接受狀態(tài)。2、源程序與PC DOS的接口匯編語(yǔ)言源程序(.ASM)經(jīng)過(guò)匯編轉(zhuǎn)變?yōu)槟繕?biāo)程序(.OBJ),當(dāng)用鏈接程序?qū)ζ溥M(jìn)行鏈接和定位時(shí),操
4、作系統(tǒng)為每個(gè)用戶(hù)程序建立:(1)、一個(gè)256字節(jié)的程序段前綴區(qū)(PSP),存放用戶(hù)程序信息。在PSP的開(kāi)始處(偏移地址0000H)安排一條INT 20H 軟中斷指令。 INT 20H功能是使系統(tǒng)返回到DOS管理狀態(tài)。因此,用戶(hù)執(zhí)行程序完后,必須能夠轉(zhuǎn)到PSP起始處執(zhí)行INT 20H指令。(2)、定位用戶(hù)程序 (3)、置DS和ES的值使之指向PSP的開(kāi)始處,即PSP的段地址 DS和ES。 (4)、將用戶(hù)程序的段基址、第一條指令的偏移地址設(shè)置CS、IP;同時(shí)設(shè)置SS、SP。 (5)、運(yùn)行用戶(hù)程序(二)、 8086匯編語(yǔ)言的語(yǔ)句1、語(yǔ)句的種類(lèi)(1)、指令語(yǔ)句:可執(zhí)行語(yǔ)句,對(duì)應(yīng)CPU指令系統(tǒng)規(guī)定的一條
5、指令。匯編時(shí),匯編程序?yàn)橹a(chǎn)生一一對(duì)應(yīng)的機(jī)器目標(biāo)代碼。(2)、偽指令語(yǔ)句:匯編時(shí)給匯編程序提供與硬件有關(guān)的匯編信息,本身并不產(chǎn)生目標(biāo)代碼,CPU不執(zhí)行,是指示匯編程序進(jìn)行匯編的操作。2、語(yǔ)句格式(注意:方括號(hào)表示該內(nèi)容可有可無(wú)。)指令語(yǔ)句的一般格式:標(biāo)號(hào): 前綴 指令助記符 操作數(shù) ;注釋 偽指令語(yǔ)句的一般格式:名字 偽指令定義符 操作數(shù) ;注釋?zhuān)?)、標(biāo)號(hào)和名字標(biāo)識(shí)符字段由各種有效字符組成,一般表示符號(hào)地址,具有段基址、偏移量、類(lèi)型三種屬性。很多情況下標(biāo)識(shí)符字段是語(yǔ)句中的可選部分,主要為便于程序的讀寫(xiě)方便而使用。標(biāo)識(shí)符字段通常有:標(biāo)號(hào) 后跟冒號(hào),在程序中作為JMP、LOOP指令的轉(zhuǎn)移目標(biāo),與
6、具體的指令地址相聯(lián)系。名字 用于定義常量名、變量名、過(guò)程名、段名等。注意:標(biāo)號(hào)和名字必須符合匯編語(yǔ)言對(duì)標(biāo)識(shí)符的規(guī)定以字母開(kāi)頭,由字母(不分大小寫(xiě))、數(shù)字(09)及部分特殊字符(? $和下劃線(xiàn)_等)組成,字符串長(zhǎng)度不超過(guò)31個(gè)。 標(biāo)識(shí)符不能是匯編語(yǔ)言中有特定意義的保留字、助記符、Reg等,如:CPU的內(nèi)部寄存器名AH、AL、AX等。(2)、助記符、定義符規(guī)定指令或偽指令的操作功能,是語(yǔ)句中唯一不可缺少的部分。對(duì)于指令,匯編程序?qū)⑵浞g成機(jī)器語(yǔ)言指令,如MOV AX, 100表示B8 00 01;對(duì)于偽指令,匯編程序據(jù)其要求的功能進(jìn)行處理,如data SEGMENT表示data與一段地址對(duì)應(yīng)。注意
7、:前綴僅可出現(xiàn)在指令助記符前。(3)、操作數(shù)指令語(yǔ)句中提供給指令的操作對(duì)象、存放位置。操作數(shù)可以是0個(gè)、1個(gè)或2個(gè),2個(gè)時(shí)用逗號(hào)“,”分開(kāi)。(INC BX; MOV AX,DATA;)偽指令語(yǔ)句中操作數(shù)的格式和含義隨偽操作指令不同而不同。 (4)、注釋 以“;”開(kāi)始,給以編程說(shuō)明。匯編程序?qū)Α?;”后的?nèi)容不做處理。注釋對(duì)匯編不起任何作用,不對(duì)應(yīng)于任何機(jī)器碼,僅增強(qiáng)源程序的可讀性。二、8086匯編中的偽指令有符號(hào)定義語(yǔ)句、數(shù)據(jù)定義語(yǔ)句、程序結(jié)構(gòu)語(yǔ)句、模塊鏈接語(yǔ)句、有關(guān)宏的語(yǔ)句、條件匯編語(yǔ)句等。1、符號(hào)定義語(yǔ)句給表達(dá)式賦予一種符號(hào)名,以便在程序中用它替代表達(dá)式。(1)、等值語(yǔ)句 格式:符號(hào)名 EQ
8、U 表達(dá)式例: PORT EQU 40H ;用PORT代替40H號(hào)端口 COUNT EQU CX ;用COUNT代替CX寄存器注:EQU語(yǔ)句不能重新定義,即在同一源程序中,用EQU定義過(guò)的符號(hào)不能賦予不同的值。(2)、等號(hào)語(yǔ)句 格式:符號(hào)名=表達(dá)式例:PP = 89FAH ;賦值 PP = PP+1 ;PP = 89FBH 注:等號(hào)語(yǔ)句與EQU語(yǔ)句的相同點(diǎn):符號(hào)不是變量,所以用EQU、= 定義的符號(hào)不占用存儲(chǔ)器單元。區(qū)別:等號(hào)語(yǔ)句可以在同一源程序中重復(fù)定義符號(hào)。2、變量定義語(yǔ)句用于定義變量(程序中所用的存儲(chǔ)器操作數(shù)),指定變量的類(lèi)型和名稱(chēng),并為其分配存儲(chǔ)單元和預(yù)置初值。(1)、基本格式:變量名
9、 數(shù)據(jù)定義符 操作數(shù) ,操作數(shù),操作數(shù)變量名:指示存儲(chǔ)器操作數(shù)的地址(符號(hào)地址);數(shù)據(jù)定義符:指示存儲(chǔ)器操作數(shù)的類(lèi)型(字節(jié)、字、雙字等);操作數(shù):指示存儲(chǔ)器操作數(shù)的內(nèi)容,是賦給變量的初值。多個(gè)相同類(lèi)型的變量可在一條語(yǔ)句中定義。匯編程序?qū)⒍x的操作數(shù),按其類(lèi)型分配內(nèi)存單元數(shù), 并順序存入變量名指向的內(nèi)存單元中。常用的數(shù)據(jù)定義符有:DB:變量為字節(jié)數(shù)據(jù)類(lèi)型 DW:變量為字?jǐn)?shù)據(jù)類(lèi)型DD:變量為雙字?jǐn)?shù)據(jù)類(lèi)型 DQ:變量為4字?jǐn)?shù)據(jù)類(lèi)型(64位)DT:變量為10字節(jié)的壓縮BCD數(shù)(80位)例:定義賦初值的變量data SEGMENTxx DB 1, -1, 0FCHyy DW 1, -1, 0FCHzz
10、DD 1,- 1, 0FCH data ENDS(2)、具體形式和功能1)為數(shù)據(jù)項(xiàng)分配存儲(chǔ)單元,用變量名作為該存儲(chǔ)單元的名稱(chēng)。 2)預(yù)留內(nèi)存單元,但不賦值,以存放運(yùn)算結(jié)果.3)定義一個(gè)數(shù)組4)定義字符串(只能用DB定義 )5)將已定義的地址存放內(nèi)存單元 3、段定義偽指令用于告訴匯編程序和鏈接程序如何按邏輯段來(lái)組織程序和利用存儲(chǔ)器,具體來(lái)說(shuō)就是規(guī)定段的起始和結(jié)束,指定段的屬性。段的定義有簡(jiǎn)化定義和完整定義,下面只介紹完整定義。(1)、段定義語(yǔ)句SEGMENT/ENDS格式:段名 SEGMENT 定位類(lèi)型組合屬性類(lèi)別名 (段體) 段名 ENDS 說(shuō)明:a、段定義由偽操作SEGMENT開(kāi)始、ENDS
11、結(jié)束。SEGMENT 和ENDS 必須成對(duì)出現(xiàn),且段名必須相同(段名是合法的標(biāo)識(shí)符,與某個(gè)存儲(chǔ)單元相聯(lián)系);b、SEGMENT和ENDS語(yǔ)句之間可以有其他指令或偽指令,表示存放在該段內(nèi)存中的變量、指令或其他偽指令對(duì)該段內(nèi)存的處理;c、程序中可以定義多個(gè)段;d、程序經(jīng)匯編、連接及裝入內(nèi)存后,段名為一具體的段值。段定義的相關(guān)約定1)、定位類(lèi)型:告訴鏈接程序鏈接時(shí)段的起始邊界,有4種選擇:BYTE:段起始地址為任意值,即從任何地址開(kāi)始都行。WORD:段起始地址必須是偶數(shù)(XX0B),最低1位必須為0。PARA:段起始地址必須是16的倍數(shù)(XXXX0H),最低4位必須為0。PAGE:段起始地址必須是2
12、56的倍數(shù)(XXX00H),最低8位為0。注意:缺省類(lèi)型為PARA。 2)、組合類(lèi)型在多模塊(每個(gè)模塊有自己的代碼段、數(shù)據(jù)段、堆棧段)組合時(shí),告訴鏈接程序本段與其他模塊中同名段的鏈接關(guān)系,有6種選擇:NONE:本段與其它同名段邏輯上不發(fā)生關(guān)系,有自己的段基地址(缺省選擇)。PUBLIC:在滿(mǎn)足定位類(lèi)型的前提下,鏈接程序?qū)⑵渑c其他模塊中的同名段鄰接在一起,共用一個(gè)段地址。鏈接的先后次序由鏈接命令指定。STACK:與PUBLIC同樣處理,鏈接后作為堆棧段,并自動(dòng)初始化SS、SP,SS指向第一個(gè)STACK段。若程序中不說(shuō)明STACK ,則必須由用戶(hù)在程序的開(kāi)始處,自己通過(guò)語(yǔ)句設(shè)置SS、SP。COMM
13、ON:各模塊中同名段重疊覆蓋,有著相同的起始地址。段的長(zhǎng)度取決于最長(zhǎng)的COMMON段。段的內(nèi)容為所鏈接的最后一個(gè)模塊中COMMON段的內(nèi)容。MEMORY:鏈接在其他所有段的后面(高端存儲(chǔ)區(qū) )。若有多個(gè)MEMERY段,則只認(rèn)第一個(gè),其余按COMMON處理。AT表達(dá)式:鏈接程序把本段裝在表達(dá)式值所指定的段地址(此方式不能指定代碼段)。3)、類(lèi)別名給各段的名字信息,表示段的類(lèi)別。類(lèi)別必須用單引號(hào)括起來(lái),典型類(lèi)別名如:STACK、CODE和DATA等。若缺省類(lèi)別名,則表明該段類(lèi)別為空。同名同類(lèi)別的段在內(nèi)存中依序連續(xù)存放。 (2)、段寄存器說(shuō)明偽指令格式: ASSUME 段寄存器:段名,段寄存器:段名
14、, 設(shè)定特定的Sreg指向特點(diǎn)的段,說(shuō)明源程序中定義的段應(yīng)由哪一個(gè)Sreg去尋址。否則,匯編程序無(wú)法生成機(jī)器代碼程序。 ASSUME并未真正的將段地址裝入相應(yīng)的Sreg。 Sreg的初值還必須由用戶(hù)在程序的開(kāi)始處用MOV指令來(lái)設(shè)置(CS除外)。(3)、指定地址偽指令 在匯編程序中,有一個(gè)軟件計(jì)數(shù)器(LC)地址計(jì)數(shù)器。在每個(gè)段定義開(kāi)始處,它被復(fù)位為0。當(dāng)匯編程序逐行掃描語(yǔ)句時(shí),用LC保存當(dāng)前指令的地址。 格式1:ORG 表達(dá) ;將表達(dá)式的值(065535) LC格式2:ORG $+表達(dá)式 ;將LC的當(dāng)前值$表達(dá)式的值 LC功能:強(qiáng)行指定地址計(jì)數(shù)器LC的當(dāng)前值,在段內(nèi)改變它以后的代碼或數(shù)據(jù)存放的偏
15、移地址。ORG語(yǔ)句之后段內(nèi)所有的代碼或數(shù)據(jù)均以表達(dá)式(常量)的值為起始偏移量連續(xù)存放,除非遇到另一個(gè)ORG語(yǔ)句。(此語(yǔ)句本身并不占內(nèi)存。)(4)、模塊的定義和通信MASM宏匯編語(yǔ)言提供了模塊化編程偽指令,用以實(shí)現(xiàn)模塊的定義與通信。一個(gè)任務(wù)的源程序由若干模塊組成,每個(gè)模塊有代碼段、數(shù)據(jù)段等,對(duì)應(yīng)一個(gè).ASM,是個(gè)獨(dú)立的編譯單位。當(dāng)各個(gè)模塊編譯完畢,可用LINK連接各模塊形成一個(gè)完整的可執(zhí)行程序(.exe)。1)、模塊定義偽指令NAME/ END格式: NAME 模塊名 ;為模塊命名 ······· ;語(yǔ)句 END 標(biāo)號(hào) ;結(jié)束
16、模塊a、模塊名的作用是指示給連接程序進(jìn)行連接用。b、源程序中可無(wú)模塊定義,此時(shí)源文件名作為模塊名。c、主模塊的END后要跟標(biāo)號(hào),子模塊不跟標(biāo)號(hào)。d、 部分可省略。2)、模塊間通信偽指令 實(shí)現(xiàn)模塊間數(shù)據(jù)或過(guò)程的互訪(fǎng)和共享。格式:PUBLIC名字 ,名字, EXTRN名字:類(lèi)型 ,名字:類(lèi)型,a、名字可以是標(biāo)號(hào)、變量名、過(guò)程名或由EQU(或)偽指令定義的符號(hào)名。b、類(lèi)型可以是BYTE、WORD、DWORD、NEAR、FAR和ABS(常量屬性)等。c、【PUBLIC 和EXTRN配對(duì)使用。d、由PUBLIC 說(shuō)明的名字是全局的,可以在其他模塊中使用。e、EXTRN表明本模塊中使用的名字在別的模塊中定
17、義過(guò),且類(lèi)型一致。4、過(guò)程和宏定義偽指令過(guò)程和宏是模塊化程序設(shè)計(jì)的基礎(chǔ)。匯編語(yǔ)言中常用定義過(guò)程和宏的方法來(lái)實(shí)現(xiàn)按模塊管理程序代碼的功能。(1)、過(guò)程定義偽指令過(guò)程:一段可以由CALL指令調(diào)用,用RET返回的程序。當(dāng)整個(gè)源程序由主、子程序構(gòu)成時(shí),主、子程序都在代碼段,且都可用過(guò)程來(lái)表示(即定義為過(guò)程)。格式: 過(guò)程名 PROCNEAR/FAR ······ RET 過(guò)程名 ENDP功能:定義一個(gè)過(guò)程,并指出過(guò)程名及過(guò)程的屬性。說(shuō)明:a、過(guò)程定義由偽指令PROC開(kāi)始、ENDP結(jié)束。PROC和ENDP之間為過(guò)程的指令序列。b、程序中可以定義
18、多個(gè)過(guò)程。c、程序經(jīng)匯編、連接及裝入內(nèi)存后, 過(guò)程名為一具體的內(nèi)存地址,指示子程序入口。 、過(guò)程的屬性有NEAR和FAR NEAR過(guò)程只能被定義該過(guò)程的段中的其他程序調(diào)用(段內(nèi)調(diào)用);FAR過(guò)程可由任何段中的程序調(diào)用(段間調(diào)用)。缺省時(shí)為NEAR、根據(jù)過(guò)程的屬性,匯編程序自動(dòng)對(duì)CALL、RET翻譯成段內(nèi)(段間)調(diào)用及段內(nèi)(段間)返回的目標(biāo)代碼。(2)、宏定義偽指令為減少重復(fù)編寫(xiě)相同語(yǔ)句段的工作,我們可以使用“宏”功能。宏定義是指用一個(gè)標(biāo)識(shí)符(宏名)來(lái)代替一組指令序列(可同時(shí)包含指令性語(yǔ)句和指示性語(yǔ)句)。宏功能的使用過(guò)程是:宏定義、宏調(diào)用、宏展開(kāi)。宏定義格式:宏指令名 MACRO 形參,形參
19、183;····· ;指令序列 ENDM 宏調(diào)用在源程序中用宏指令代替所定義的程序段。格式:宏指令名 實(shí)參,實(shí)參宏擴(kuò)展:匯編時(shí),將相應(yīng)的程序段中的每條語(yǔ)句前冠以“”,代替宏指令以產(chǎn)生目標(biāo)代碼。三、8086匯編中的操作數(shù) 1、常量操作數(shù)在運(yùn)行期間不變化的量:立即數(shù)、端口地址。(1)、數(shù)值常量如:2 (B) 、10 (D)、8 (Q)、16 (H)的整型常量。注意:對(duì)16進(jìn)制數(shù):必須以數(shù)字打頭,若最高位為字母AF,必須加前綴0。(2)、字符串常量是用單引號(hào)括起來(lái)的一個(gè)或多個(gè)字符,值為字符的ASCII碼值。例:A=41H AB=4142H 1234
20、31323334H 2、Reg操作數(shù)操作數(shù)部分是寄存器名,如:AX、SI和DS等。 3、存貯器操作數(shù)有標(biāo)號(hào)與變量?jī)煞N(1)、標(biāo)號(hào)在代碼段內(nèi),與指令地址相關(guān)聯(lián)。(或某個(gè)過(guò)程起點(diǎn)位置相關(guān)聯(lián)) (2)、變量在數(shù)據(jù)段或堆棧段內(nèi),是存放數(shù)據(jù)的存貯單元的符號(hào)地址,與各種存儲(chǔ)器操作數(shù)尋址方式有關(guān)。常以變量名的形式出現(xiàn)在程序中。(3)、標(biāo)號(hào)和變量都與存儲(chǔ)器地址相關(guān)聯(lián),都具有以下三種屬性: 段屬性(SEGMENT)段基址,標(biāo)號(hào)或變量所在段的段地址。 偏移量屬性(OFFSET)段內(nèi)偏移地址,標(biāo)號(hào)或變量所在地址與所在段的段起始地址之差。 類(lèi)型屬性(TYPE)對(duì)變量,指變量存取單位的字節(jié)數(shù)大小,有字節(jié)(BYTE) 、
21、字(WORD)、雙字(DWORD)、4字、10字節(jié)5種。對(duì)標(biāo)號(hào),指標(biāo)號(hào)與使用它的指令之間的距離遠(yuǎn)近。(如:對(duì)轉(zhuǎn)移指令來(lái)說(shuō),有NEAR標(biāo)號(hào)或FAR標(biāo)號(hào)) 4、表達(dá)式操作數(shù)表達(dá)式由各種操作數(shù)、運(yùn)算符和操作符組成,可出現(xiàn)于源程序的任何地方,在匯編時(shí)計(jì)算(而不是在程序執(zhí)行過(guò)程中)。匯編程序?qū)Ρ磉_(dá)式進(jìn)行運(yùn)算后,得到一個(gè)確定的數(shù)值,再把這個(gè)數(shù)值匯編到指令中。根據(jù)表達(dá)式所表示的內(nèi)容而分:(1)、數(shù)值表達(dá)式:由常量及算術(shù)邏輯運(yùn)算符、或關(guān)系運(yùn)算符連接而成,在匯編時(shí)產(chǎn)生一個(gè)數(shù)值。(2)、地址表達(dá)式:由常量、變量、標(biāo)號(hào)、寄存器的內(nèi)容及一些運(yùn)算符組成。四、8086匯編中的運(yùn)算符和操作符MASM宏匯編中有三種運(yùn)算符:算
22、術(shù)、邏輯和關(guān)系運(yùn)算符;兩種操作符:分析和合成操作符。運(yùn)算符:實(shí)現(xiàn)對(duì)操作數(shù)的相關(guān)運(yùn)算。 操作符:完成對(duì)操作數(shù)屬性的定義、調(diào)用和修改。1、運(yùn)算符(1)、算術(shù)運(yùn)算符+、×、/、MOD(取余數(shù))數(shù)值表達(dá)式中可使用所有算術(shù)運(yùn)算符,地址表達(dá)式僅使用“+、”兩種算術(shù)運(yùn)算符。如標(biāo)號(hào)或變量±常量,運(yùn)算后仍為標(biāo)號(hào)或變量,其3個(gè)屬性中的類(lèi)型及段基址屬性不變,僅修改了偏移量屬性。注意:算術(shù)運(yùn)算符不影響標(biāo)志位例:完成80H+90H 解:MOV AL,80H+90H ;使用數(shù)值表達(dá)式 ;(AL)=10H、CF=不變 MOV AL,80H ;使用加法指令 ADD AL,90H ;(AL) = 10H、C
23、F = 1(2)、邏輯運(yùn)算符AND、OR、XOR和NOT實(shí)現(xiàn)操作數(shù)按位邏輯操作,只適用于數(shù)值表達(dá)式。注意:邏輯運(yùn)算符與邏輯指令助記符形同意不同作為指令助記符時(shí),是在程序運(yùn)行時(shí)被執(zhí)行,操作對(duì)象可以是寄存器或存儲(chǔ)器操作數(shù)。作為運(yùn)算符時(shí),是在程序匯編時(shí)由匯編程序計(jì)算的,計(jì)算結(jié)果充當(dāng)指令的某一個(gè)操作數(shù)或構(gòu)成操作數(shù)的部分。(3)、關(guān)系運(yùn)算符EQ(等于)、NE(不等)、LT(小于)GT(大于)、(LE小于等于)和GE(大于等于)在兩個(gè)無(wú)符號(hào)操作數(shù)之間進(jìn)行大小關(guān)系比較,兩個(gè)操作數(shù)必須同是數(shù)值或同是一個(gè)段內(nèi)的兩個(gè)存儲(chǔ)器地址。關(guān)系不成立則結(jié)果為“0”(假: 0);若關(guān)系成立則結(jié)果為全“1”(真:FFFFH)。結(jié)果值在匯編時(shí)獲得。例:MOV BX,PORT LT 5 匯編為:MOV BX,0FFFFH(條件成立) 或 MOV BX,0000H (條件不成立)2、操作符分析操作符:運(yùn)算對(duì)象是存儲(chǔ)器操作數(shù),它返回變量或標(biāo)號(hào)的屬性值。合成操作符(修改屬性運(yùn)算符):作用于存儲(chǔ)器操作數(shù)時(shí)可以改變它們的屬性。(1)、分析操作符(SEG、OFFSET、TYPE、SIZE 、LENGTH) 使用格式:操作符 標(biāo)號(hào)或變量 1)、SEG、OFFSET返回標(biāo)號(hào)或變量的段地址和偏移地址2)、
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工勞動(dòng)合同協(xié)議書(shū)格式
- 廠(chǎng)房租賃合同范本版(18篇)
- 農(nóng)業(yè)機(jī)械購(gòu)買(mǎi)補(bǔ)貼合同
- 技術(shù)開(kāi)發(fā)服務(wù)合同案例
- 企業(yè)培訓(xùn)就業(yè)協(xié)議書(shū)編寫(xiě)技巧
- 2第二章-血液一般檢驗(yàn)-02-血栓與止血、血型
- 室內(nèi)清潔合作合同格式
- 員工個(gè)人合同書(shū)范本
- 投資合作協(xié)議范本:2024投資合作協(xié)議范本
- 場(chǎng)地游戲安全協(xié)議書(shū)
- 大學(xué)生心理健康優(yōu)秀說(shuō)課-比賽課件
- 國(guó)家開(kāi)放大學(xué)《西方行政學(xué)說(shuō)》章節(jié)測(cè)試參考答案
- 班組建設(shè)與班組長(zhǎng)管理技巧課件
- 五年級(jí)上冊(cè)英語(yǔ)課件-Unit4 What can you do Part A |人教(PEP) (共16張PPT)
- 朝鮮半島局勢(shì)緊張課件
- 三年級(jí)上冊(cè)生命與健康教學(xué)計(jì)劃
- 小學(xué)生量感培養(yǎng)的調(diào)查問(wèn)卷(教師)
- 【高中美術(shù)課件】禮儀與教化
- 名著老人與??碱}集錦帶答案
- 概預(yù)算審核實(shí)施方案
- 消防安全培訓(xùn)及應(yīng)急演練主題教育課件PPT模板宣傳PPT動(dòng)態(tài)PPT
評(píng)論
0/150
提交評(píng)論