匯編語言.ppt_第1頁
匯編語言.ppt_第2頁
匯編語言.ppt_第3頁
匯編語言.ppt_第4頁
匯編語言.ppt_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 .微型計算機的原理和應(yīng)用,第2、3章匯編語言計程儀編程,3,3.1匯編語言基本要素,4,用匯編語言寫的源計程儀程序由許多句子(也稱為匯編指令)組成。 每個語句由14個部分組成,其格式為標識符命令助記符命令注釋。 用方括號括起來的部分可以有也可以沒有。 每個節(jié)由一個空格(至少一個)分隔,每行最多可包含132個字符。 3.1.1匯編語言的文本格式,5,(1)標識符:給命令或存儲單元地址賦予的名稱。 該標識符包括字符串: AZ (以字符或點開頭)、az; 數(shù)字: 09特殊字符: _ $,數(shù)字不能是標識符的第一個字符,但.只能是標識符的第一個字符。 標識符最多可包含31個字符。 另外,當id跟在標

2、識符之后時,表示標簽條,并且表示該行中的指令的開頭地址,并且標簽條可以調(diào)用該指令來直接引用。 如果標識符后面沒有冒號,則表示變量。 不在偽指令的前面標識符上加冒號。 (2)指令助記符表示不同操作的指令,并且可以是根據(jù)8086/8088的指令助記符或偽指令。 (3)命令是指令執(zhí)行的對象。 根據(jù)命令的要求,可能有一個、兩個、無或多個。 例如: RET; 無命令計數(shù): Inc CX; 一條命令MOV CX,DI; 兩個命令A(yù)DD AX、bp14; 第二個命令是正式的,(4)評論有無項目是添加到源計程儀節(jié)目以改善計程儀節(jié)目的易讀性的評論。7、匯編語言運算符:匯編計程儀程序在匯編時進行訂正,與演算指令不

3、同,指令在執(zhí)行程序計程儀時進行訂正。 1 .如果應(yīng)用于算術(shù)運算符、邏輯運算符、關(guān)系運算定符,例如,MOV AX、DI BX ADD AX、FIRST 1 MOV AX、(選擇lt20 ) and 5內(nèi)存命令,則只有-運算符有意義的邏輯運算符命令也必須是數(shù)字內(nèi)存命令不能進行邏輯運算關(guān)系運算子連接的兩個命令必須都是數(shù)字或同一段內(nèi)的內(nèi)存地址。9,2、取值運算符1) $運算符$ :當前地址片偏移的值,BLOCK DB HELLO! num equ $ -布洛克, NUM確定6,10,SEG和OFFSET SEG:的標簽條或變量所針對的段地址OFFSET:的標簽條或變量的偏移地址。 例如,定義:槽dw2

4、5:movax,槽; 從插槽地址取1個字,然后單擊AX MOV AX,seg插槽; 將槽的段地址設(shè)置為AX MOV AX,偏移槽; 將SLOT的段內(nèi)偏移地址設(shè)為AX,11,3 ) type回復(fù)標簽條或內(nèi)存命令的類型值對內(nèi)存命令:表示占用字節(jié)數(shù)對標簽條:表示過程或命令地址的調(diào)用類型的表3-1內(nèi)存命令的類型屬性和返回值字節(jié)near ff 12 4) LENGTH和size (在dup中定義數(shù)據(jù)的情況下),LENGTH:返回與存儲器指令相關(guān)的基本數(shù)據(jù)數(shù),size :返回分配給存儲器指令的字節(jié)數(shù)的關(guān)系: SIZE=LENGTH TYPE,例如mult-word length mult-word=50

5、size mult-word=100 type mult-word=2、13、3、1) PTR定義命令是一種新的類型,它創(chuàng)建一般格式:類型PTR命令,功能:內(nèi)存命令,以及后續(xù)的內(nèi)存命令f2dw 3456移動電話、字節(jié)ptr f 2移動電話、3移動電話、3、AL: 56H、 錯誤的字節(jié)傳輸類型未知,14,3.1.3表達式是由運算符和命令組成的序列,生成裝配時確定的值。 該值可以只表示一個常數(shù),也可以表示一個存儲單元的偏移地址。 對應(yīng)的表達式稱為常數(shù)表達式和地址表達式。、15,1、常數(shù)、二進制數(shù)字(b )、8進制(q )、16進制(h )、10進制(d ) (差動奧爾特)、10進制浮點、16進制實

6、數(shù)、字符和字符串、110進制示例: COUNT EQU 10 NAME=J是數(shù)值常量命令或字符串常量命令。 前者可以采用二進制數(shù)字、八進制、十進制或十六進制等位數(shù)形式,后者的對應(yīng)常數(shù)值是對應(yīng)字符的ASCII查詢密碼。17、3、存儲命令、存儲命令是地址命令,表示存儲單元的地址,通常作為識別符出現(xiàn)。 變量:表示數(shù)據(jù)段、附加段或棧內(nèi)存段中數(shù)據(jù)的地址。 變量對應(yīng)的存儲單元的內(nèi)容可在程序執(zhí)行中變更。 標簽條:表示代碼段中指令碼的地址。 標簽條通常作為過渡指令或調(diào)用指令的目標命令,不能在程序執(zhí)行中變更。18、存儲器指令具有3個屬性,段屬性(SEG ) :對應(yīng)的存儲器單元的段地址片偏移屬性(OFFSET )

7、 :存儲器單元存在的段內(nèi)的偏移地址(距段的起點的字節(jié)數(shù))類型屬性(TYPE ) 變量的類型是占用存儲單元格的字節(jié)數(shù): 19、datasegmentxdb5、4ydw40hzdd2030hdataends、DS:0000H、x、y、z、x、y、z各有三個屬性。 是段地址。20、4、常數(shù)公式由常數(shù)指令和運算符構(gòu)成,在組裝時生成常數(shù)。 例如,端口、val11、偏移和、seg和、類型周期等。21、5、地址表現(xiàn)方式由存儲器指令和運算符構(gòu)成,然而在由存儲器指令構(gòu)成地址表現(xiàn)方式時,需要明確的物理意義。 例如,SUM2、CYCLE5式SUM2、CYCLE5的值依然是存儲器指令,雖然該存儲器指令的段地址和類型屬

8、性分別與存儲器指令SUM和CYCLE相同,但是偏移地址分別比SUM和CYCLE大2或5 表達式在裝配時進行修正,變量UE針織面料的內(nèi)容可以在程序執(zhí)行中變更。22、3.1.4匯編語言計程儀程序組件步驟、23、 ASM、 OBJ、 EXE、組件、連接、宏命令組件計程儀程序: MASM.EXE、連接計程儀程序: linne 2)組件3 )連接4 )調(diào)試。 24、用戶編寫計程儀程序,程序在計算機上執(zhí)行,計算機的控制從執(zhí)行操作系統(tǒng)傳遞給用戶計程儀程序,用戶執(zhí)行計程儀程序,用戶計程儀程序執(zhí)行結(jié)束后,應(yīng)該再次將控制權(quán)移交給執(zhí)行操作系統(tǒng)。 在校正功能中,返回DOS的操作將以子程序?qū)崿F(xiàn),其僅當用戶使用時調(diào)用。

9、每次將一個用戶的可執(zhí)行文件. EXE加載到存儲器中時,存儲器的分配情況如圖所示:00000H,DS,ES,100字節(jié),SS,用戶可執(zhí)行文件空間,F(xiàn)FFFFH,CS,26, 在此,在PSP的開頭(第1、2字節(jié))有中斷指令I(lǐng)NT 20H的查詢密碼,由此可以結(jié)束用戶群計程儀程序,進入OS。 用戶堆計程儀報完成執(zhí)行后,可以通過執(zhí)行該命令進入DOS。、27、用戶計程儀程序運行后,DS、ES、SS、CS首先將用戶程序定義為遠程程序,可執(zhí)行文件加載到存儲器后,DS、 因為ES的兩個段寄存器由電腦CPU自動地設(shè)置為PSP的起始地址,所以一般計程儀的起始指令是:彈出ds mov ax和0 PUSH AX棧內(nèi)存中

10、的PSP段的段地址和偏移地址0000H,并向CS和IP發(fā)送回DOS,返回DOS的幀28、如果是棧內(nèi)存,另一種調(diào)用執(zhí)行操作系統(tǒng)的方法是系統(tǒng)調(diào)用(號碼為4CH )。 在這種情況下,當用戶程序的結(jié)束時,可以用MOV AH、4CH INT 21H這兩個命令切換到DOS。29、3.2偽指令、30、偽指令:偽指令不是電腦CPU執(zhí)行的指令,而是程序設(shè)計師給予匯編程序的指令。 匯編源計程儀程序時,匯編程序執(zhí)行的命令。 此外,偽指令用于控制配件計程儀報,并對計程儀報中的數(shù)據(jù)進行存儲器空間分配、條件配件、列表等的處理,其形式與配件指令相同但沒有生成營銷對象查詢密碼,即,不直接指示電腦CPU執(zhí)行什么。31、3.2.

11、1數(shù)據(jù)定義偽指令、DB :定義字節(jié),每個后續(xù)命令占用一個存儲單元,定義連續(xù)存儲的bufferdb2、3stringdbno、DW :字,每個后續(xù)命令占用兩個字節(jié)。 buf dw 2,3,5,STRING,DD:定義了雙字,之后每命令占用4個字節(jié)。 DQ(4字長)、DT(10字節(jié)長)、32也有,只剩下UC針織面料的話不初始化就使用嗎? 如果數(shù)據(jù)重復(fù)而不是初始值,則用n DUP ()替換,n為重復(fù)次數(shù)。 陣列db 100雙倍(? 保留100個字節(jié),并且第一個地址是ARRAY,由此不進行初始化,即100個字節(jié)中全部是隨機值,DATA1 DB 100 DUP(AB ),初始化200個字節(jié),并且保留10

12、0個41H、42H (即41h42h41h422h )的2 dup (ab )。 0 ) )是VAL存儲器區(qū)域的前10字節(jié)單位的數(shù)據(jù),定義了值或其他符號名或可執(zhí)行文件,如,1,5,F(xiàn)FH,0,F(xiàn)FH,34,3.2.2象征符定義的偽指令,標識符EQU形式,標識符=形式,以及標識符,定義了在裝配中標識符出現(xiàn)的位置注: EQU中分配的名稱不能重新分配。 必須用PURGE釋放并重新定義。 例如:上下文時間區(qū)100、上下文時間區(qū)50。 等效于:BUF DB 50 DUP (? beta=時間-2beta=時間5。 重新分配,35,datasegmentadw3BD w4le qub-adata ends

13、,DS:0000H,數(shù)據(jù)段,l為常數(shù),不取空格,值為2,36,3.2.3各段從段定義語句開始,段段名SEGMENT錨固件類型組合類型類別、段主體、段名ENDS、自定義、可選、37、1 )段名必須是有效標識符。 2 )定位類型:表示本階段的起始地址在哪里,存儲器可以視為書,分為頁面、段、字、字節(jié)。 每256個地址一頁(PAGE ),各頁的起始地址為二進制: * * * * * * * * 000016進制: *00H,第一頁(256個地址)各段的起始地址為二進制: * * * * 0000 16進制: *0H, 第一段(16地址)、第二段() 、39、每兩個地址一個字(WORD )、每一個字的開

14、頭地址雙位數(shù)最基本的類型是字節(jié),每個字節(jié)只包含一個地址,屬于存儲器的任意區(qū)域定位類型表示當定義的段存儲在內(nèi)存空間中時,段的起始地址對內(nèi)存空間的請求。 也就是說,分段的起點是位于頁面的“起點”(PAGE )還是分段的“起點”(PARA )。 如果未定義定位類型,則編譯程序在默認奧爾特中是段類型,其中BYTE:指示該段的起始用戶針織面料可以從任何地址開始,而WORD:指示該段的起始用戶針織面料從雙位數(shù)地址開始PAGE:指示段的起始單元格從一頁邊界開始。 40、3 )組合類型告訴匯編程序所定義的段和其他段之間的關(guān)系,即當該段存儲存儲器時,該段是與其他段在物理上還是在邏輯性上。 NONE:表示此段與其他段沒有任何關(guān)系。 此段具有自己的基于段的地址,是差動奧爾特的組合關(guān)系。 PUBLIC :在滿足定位類型的基礎(chǔ)上,與其他模塊的同名段連接,形成新的邏輯段,共享基于段的地址。 41、COMMON:表示已生成復(fù)蓋段。 在進行連接時,將本段和在其他的COMMON中說明的同名段作為相同的開頭地址進行重疊,共享相同的堆面包車,其段長由最長的段來決定。 此外,對于每個STACK:匯編程序,只有一個棧內(nèi)存段,并且在連接時,此段和在其他STACK中描述的相同段將被連接到連續(xù)的STACK段,編譯程序?qū)⒆詣?/p>

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論