歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

盧偉《計算機原理》themicrocomputerprinciple-ch

  • 資源ID:21557424       資源大?。?span id="opfsfsp" class="font-tahoma">608KB        全文頁數(shù):90頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

盧偉《計算機原理》themicrocomputerprinciple-ch

Dalian University of Technology計算機原理 電信學院 自動化系 盧偉ADD:大黑樓B705 TEL:84706161 Email: 計算機原理 2021年5月3日21時10分2 4.1 概述4.2 匯編語言源程序的格式4.3 偽指令操作4.4 DOS功能調用4.5 匯編語言程序設計 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分3 機器語言(Machine Language):二進制表示的指令和數(shù)據(jù)。匯編語言(Assembly Language): 助記符來編寫指令,地址和數(shù)據(jù)也可用符號表示。用匯編語言編寫的程序必須翻譯成機器語言目標程序(或目標代碼)才能執(zhí)行,這種翻譯過程稱為匯編。高級語言:不針對某個具體的計算機,通用性強。但高級語言編寫的源程序同樣必須“翻譯”成機器語言,計算機才能執(zhí)行,所用的系統(tǒng)軟件稱為編譯程序或解釋程序。第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分4 用匯編語言編寫源程序,經(jīng)過匯編程序和連接程序生成目標程序和執(zhí)行程序。 文件名.ASM 文件名.OBJ 文件名.EXE匯 編 語 言源 程 序 匯 編 目 標程 序 連 接 執(zhí) 行程 序編 輯 程 序EDIT.EXE 匯 編 程 序MASM.EXE 連 接 程 序LINK.EXE第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分5 用文本編輯程序編寫匯編語言源程序,產(chǎn)生擴展名為.ASM的源文件;用匯編語言編寫的源程序經(jīng)過匯編程序MASM.EXE自動翻譯成目標程序,產(chǎn)生擴展名為.OBJ的目標文件;用鏈接程序LINK.EXE將目標程序鏈接產(chǎn)生擴展名為.EXE的可執(zhí)行程序。用Debug.EXE進行調試。編譯器可采用Microsoft MASM 或者 Borland TASM第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分6 匯編程序(MASM.EXE)的主要功能是:將匯編語言源程序翻譯成機器語言;按程序員指定,分配存儲區(qū)域(包括程序區(qū),數(shù)據(jù)區(qū),堆棧區(qū)等);將各種進位制數(shù)據(jù)轉換成二進制數(shù);把字符轉換成ASCII碼;計算出數(shù)值表達式的值;對源程序進行檢查,如果有指令錯或程序格式錯則給出相應提示。 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分7 在8086/8088匯編語言中,有兩類匯編語言指令,一類是執(zhí)行性指令,另一類是說明性指令。對執(zhí)行性指令,匯編程序都為之產(chǎn)生機器指令代碼;而說明性指令的作用僅僅是告訴匯編程序對源程序中的執(zhí)行性指令應該如何產(chǎn)生代碼,或分配存儲區(qū)。1、執(zhí)行性指令 “執(zhí)行性指令”又稱“指令語句”。這類語句經(jīng)匯編后總有目標程序與之對應,按其與匯編后目標程序對應情況又可分為兩種類型:一般性執(zhí)行性指令和宏指令。執(zhí)行性指令的功能主要由其對應的目標程序在運行時來實現(xiàn)。 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分8 (1)一般性執(zhí)行指令:這種指令是一條指令對應一條8086/8088的機器指令,即指令系統(tǒng)中包括的指令。(2)宏指令:這種指令是由偽操作定義的。宏指令是一般性指令的擴展。(3)執(zhí)行性指令的格式 標號: 前綴 指令助記符 操作數(shù)表 ;注釋其中表示根據(jù)不同的指令或不同情況可以任選的部分。操作數(shù)表是由逗號分隔開的多個操作數(shù)。標號 代表“:”后指令的存儲地址,供JMP,CALL和LOOP等指令操作使用。除此之外,它還具備一些其他“屬性”。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分9 前綴 是8086/8088中一些特殊指令,它們同其他指令配合使用,如“串操作指令”的重復指令REP。指令助記符 包括8086/8088指令助記符以及用宏定義語句定義過的宏指令名。操作數(shù) 對8086/8088的一般性執(zhí)行指令來說,可以是一個或二個操作數(shù),這時我們稱左邊的操作數(shù)為目標操作數(shù),右邊的操作數(shù)為源操作數(shù),對宏指令來說,可能有多個操作數(shù),操作數(shù)之間有逗號隔開。注釋 以“;”開始,用來簡要說明該指令在程序中的作用,以提高程序的可讀性。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分10 2、說明性指令(偽指令) “說明性指令”又稱“指示性語句”。由偽操作符定義,用于程序以源程序方式同“匯編程序”通信。 程序采用說明性指令表示源程序的起始終止信息、分段情況、內(nèi)存結構和變量說明等信息。 說明性指令的功能由匯編程序來完成。說明性指令在匯編時不產(chǎn)生任何代碼。 說明性指令的格式如下: 名字 偽操作指令 操作數(shù)表 ;注釋 其中“名字”可以是標識符定義的常量名、變量名、過程名、段名以及結構名*或記錄名*等。所謂標識符是由字母、數(shù)字、特殊字 符(如?或下劃線)等組成的字符串。 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分11 匯編語言源程序的例子 DATA SEGMENT ; 定 義 數(shù) 據(jù) 段 DATA1 DB 0F8H,60H, 0ACH,74H,3BH; 被 加 數(shù) DATA2 DB 0C1H,36H,9EH,0D5H,20H; 加 數(shù) DATA ENDS; 數(shù) 據(jù) 段 結 束 CODE SEGMENT; 定 義 代 碼 段 ASSUME CS:CODE,DS:DATA; 告 訴 匯 編 程 序 段 范 圍 START: MOV AX,DATA MOV DS,AX ; 初 始 化DS MOV CX,5 ; 循 環(huán) 次 數(shù) 送CX MOV SI,0 ; 置SI初 值 為 零第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分12 CLC ; 清CF標 志LOOPER:MOV AL,DATA2SI ; 取 一 個 字 節(jié) 加 數(shù) ADC DATA1SI,AL ; 與 被 加 數(shù) 相 加 INC SI ;SI加1指 向 下 一 字 節(jié) DEC CX; 計 數(shù) 器CX減1 JNZ LOOPER; 不 等 于 零 , 轉LOOPER MOV AH,4CH ; 系 統(tǒng) 功 能 調 用 ,AH=4C INT 21H ; 退 出 并 返 回DOS CODE ENDS ; 代 碼 段 結 束 END START; 源 程 序 結 束 , 指 定 起 始 地 址 標 號第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分13 常用的匯編語言源程序框架: DATA SEGMENT;定義數(shù)據(jù)段 VAL1 DB 12H,8EH ;定義變量 DATA ENDS ;數(shù)據(jù)段結束 STACK SEGMENT STACK STACK ENDS EXTRA SEGMENT EXTRA ENDS 堆 棧 段數(shù) 據(jù) 段擴 展 段第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分14 CODE SEGMENT; 定 義 代 碼 段 ASSUME CS:CODE,DS:DATA,ES:EXTRA,SS:STACK ;段 屬 性 說 明START: MOV AX,DATA ; 初 始 化DS MOV DS,AX MOV AX,EXTRA ; 初 始 化ES MOV ES,AX MOV AX,STACK ; 初 始 化SS MOV SS,AX MOV AX , 4C00H; 返 回DOS INT 21HCODE ENDS ; 代 碼 段 結 束END START; 源 程 序 結 束第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分15 匯編語言的語句執(zhí)行/指令性語句:可以產(chǎn)生相應的機器碼,與機器指令相對應。 LOOPER: MOV AL,DATASI指示性語句(偽操作指令):不產(chǎn)生機器碼,僅為匯編程序提供匯編時所需要的信息。如: datal DW 12abH該語句將告訴匯編程序data1定義為一個字12abH,匯編程序將為它分配一個存儲器地址,而且把該存儲單元與下一個存儲單元初始化為abH和12H。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分16 宏指令語句 為了書寫方便,把一個匯編語句序列用一條指令代替,這種指令稱為宏指令。由宏指令組成的語句稱為宏指令語句。在匯編時,凡是有宏指令的地方將用相應的匯編語句序列取代,所以宏指令可以產(chǎn)生目標代碼。例如: fun macro x ;x是形式參數(shù) mov ah,x int 21h endm則 fun為宏指令,使用時直接寫成: fun 2 ;其中2是宏參數(shù),匯編時產(chǎn)生: mov ah, 2 int 21h 兩條語句,并將它們匯編成目標代碼。 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分17 匯編語言語句的格式 指令語句格式 標號:助記符 操作數(shù),操作數(shù);注釋 偽指令語句格式 名字 助記符 參數(shù),參數(shù);注釋 宏指令語句格式 宏指令名 實參數(shù),實參數(shù) ;注釋第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分18 1、標識符 標識符即標號和名字,標號和名字的區(qū)別是標號后面必須跟冒號,而名字后面沒有冒號。一個標號與一條指令的地址的符號名相聯(lián)系,即標號是符號地址。 例如上面的示例程序中Start是標號。 名字可以是變量名、段名、過程名等,例如上面的示例程序中DATA、CODE是段名,Data1、Data2是變量名。匯編語言中的幾個基本概念第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分19 2、保留字 保留字是一個匯編語言中預先保留下來的具有特殊含義的符號,這些符號不能濫用。 如:SEGMENT ENDS OFFSET SIZE DB DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC ENDP CALL RET END 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分20 3、數(shù)的表示 常數(shù): 二進(B)、八進(O)、十進(D)和十六進(H)制數(shù),注意十六進制數(shù)若以字母開頭,前面要加數(shù)字0。缺省情況下是十進制數(shù),但可用偽指令RADIX n來改變?nèi)笔〉幕鶖?shù)。字符串常數(shù):用單引號括起來的一個或多個字符組成一個字符串常數(shù),例如:The rezult is:在內(nèi)存中。以字符的ASCII碼值存放,注意一個空格也是一個字符。如The ,在內(nèi)存中是54H、68H、65H和20H。 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分21 4、變量 變量是代表存放在某些存儲單元的數(shù)據(jù)。這些數(shù)據(jù)在程序運行期間隨時可以修改。 變量有三個屬性:段屬性、偏移屬性和類型屬性。變量的定義與預置定義變量就是給變量分配存儲單元,且對該存儲單元賦于一個符號名變量名,同時預置初值。定義變量用數(shù)據(jù)定義偽指令DB、DW、DD、DQ、DT等。 例:VAR_DATA SEGMENT data1 DB 12H data2 DW 5678H VAR_DATA ENDS第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分22 變量的屬性 段屬性(SEG):表示變量存放在那一個邏輯段中,例如上面定義的變量名data1和data2存放在VAR_DATA邏輯段中。對它們進行存取時要先將它們所在段的段基值放在DS中,即執(zhí)行下面語句: mov ax,VAR_DATA mov ds,ax 段的偏移屬性(offset):表示變量在邏輯段中離段起點的字節(jié)數(shù)。如上面的data1的偏移量為0,data2的偏移量為1。 變量的段屬性和偏移屬性構成了變量的邏輯地址。 類型屬性(type):表示變量占用存儲單元的字節(jié)數(shù) DB 1字節(jié),DW 2字節(jié),DD 4字節(jié), DQ 8字節(jié),DT 10字節(jié)第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分23 數(shù)據(jù)定義偽指令 格式:變量名 偽指令名 表達式1,表達式2, 這里表達式有以下幾種情況: 數(shù)值表達式 例: DA_BYTE DB 50H,50,0caH DA_WORD DW 0a3f1H,498dH ? 表達式,不帶引號的 ?表示可預置任何內(nèi)容 例: DA_B DB ?,? ;要求分配兩個字節(jié)單元 DA_W DW ?,? ;要求分配兩個字單元 字符串表達式 數(shù)據(jù)項可以寫成字符串形式,但只能用DB、DW、DD定義, 而且DW、DD語句定義的串只允許包含兩個字符。 參看下面的例子。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分24注 意 :定 義 多 于 兩 個 以 上 字 符 的 字 符 串 時 ,只 能 使 用DB偽 指 令 , 不 能 使 用DW和DD等 偽 指 令 。 例: S1 DB ABCDEF S2 DW AB, CD, EF S3 DD AB, CD 這幾個變量在存儲器中存放情況如下: S1 41H S2 42H S3 42H 42H 41H 41H 43H 44H 00H 44H 43H 00H 45H 46H 44H 46H 45H 43H 00H 00H 第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分25 可以用DW語句把變量或標號的偏移地址存入存儲器;也可用DD語句把變量或標號的段地址和偏移地址都存入存儲器,此時低位字存偏移地址,高位字存段地址,例如:VARDW1234H LABEL:MOV AL, 04H PRV DD VARPRL DW LABEL PRR DD LABEL PRVPRLPRRVAR的 偏 移 地 址VAR的 段 地 址LABEL的 偏 移 地 址LABEL的 偏 移 地 址LABEL的 段 地 址 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分26 帶DUP表達式,DUP是定義重復數(shù)據(jù)操作符格式: 變量名 數(shù)據(jù)定義偽指令 表達式1 DUP(表達式2) 其中表達式1是重復次數(shù),表達式2是重復內(nèi)容。 例: D_B1 DB 20H DUP(?) ;保留20H個字節(jié) D_B2 DB 10H DUP(ABCD) ;字符串ABCD ;重復10H次 D_W1 DW 10H DUP(4) ;字4重復10H次 ARRAY DB 100 DUP(0,2 DUP(1,2),0,3) ;定義ARRAY700個字節(jié)$符號,表示地址計數(shù)器的當前值 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分27 例:ARRAY DW 1,2,$+4,3,4,$+4 如果在匯編時,ARRAY的偏移地址是0074H,則在ARRAY數(shù)組中,兩個$+4得到的結果是不同的,這是由于$的值是在不斷變化的。此定義在存儲器中的表示如下圖所示。 $用在偽操作的參數(shù)字段時,和用在指令中的情況是不同的,用在偽操作中它表示的是地址計數(shù)器的當前值。用在指令中它只表示該指令的首地址,而與$本身所在的字節(jié)無關。例如 指令 JNE $+6表示滿足條件時轉移到該指令的首地址加6以后所在的單元。 1000:2543 JNE $+6 則轉移地址是2549H.第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分28 01H00H03H00H04H00H82H00HARRAY00H02H00H7CH01HARRAY00H01HARRAY02H00H01HARRAY00H02H00H01HARRAY7CH00H02H00H01HARRAY00H7CH00H02H00H01HARRAY03H00H7CH00H02H00H01HARRAY00H03H00H7CH00H02H00H01HARRAY04H00H03H00H7CH00H02H00H01HARRAY00H04H00H03H00H7CH00H02H00H01HARRAY82H00H04H00H03H00H7CH00H02H00H01HARRAY00H82H00H04H00H03H00H7CH00H02H00H01HARRAY第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分29 例4-1:下面的數(shù)據(jù)段定義,COUNT 表示什么? DATA SEGMENT BUF DB 0123456789ABCD COUNT EQU $ - BUF DATA ENDS這里,COUNT的值就是數(shù)據(jù)區(qū)的長度,所以COUNT=145、標號 標號是一條指令的目標代碼的符號地址,它常用作轉移指令(或子程序調用指令)的操作數(shù)。 標號有三個屬性:段屬性、偏移屬性和類型屬性。 段屬性是該標號的段地址,偏移屬性是該標號的偏移地址,類型屬性是表示該標號的范圍是本段(NEAR)或段間(FAR),或稱為近或遠屬性。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分30 6、表達式和運算符 表達式由常數(shù)、操作數(shù)、操作符和運算符組成。有六種運算符,即算術運算符、邏輯運算符和關系運算符、分析運算符、綜合運算符和分離運算符。1、算術運算符+、*、/、MOD(取余)、SHL(左移)、SHR(右移) 例: 32 MOD 5 ;結果為2 MOV DX,BLOCK+(6-1)*22、邏輯運算符(按位操作) AND (與) OR (或) XOR (異或) NOT (非) 例: IN AL,Port_VAL OUT Port_VAL AND OFEH,AL第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分31 3、關系運算符關系運算是邏輯判定,當為真時結果為全1(0FFFFH),為假時結果為全0。 EQ (等于) ;若PP=25,則25 EQ PP = 0FFFFH NE (不等于);25 NE PP = 0 LT (小于) ;25 LT 26 = 0FFFFH LE (小于等于) ;25 LE PP = 0FFFFH GT (大于) ; 26 GT PP = 0FFFFH GE (大于等于) ; 24 GE PP = 0關系運算符一般不單獨使用,常與其它運算符結合使用。例如:ADD AX,(port GT 60)AND 50)OR(port LE 60)AND 70)當port 的值60時,上述指令匯編為ADD AX,50當port 的值60時,上述指令匯編為ADD AX,70第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分32 4、分析運算符把存儲器地址操作數(shù)分解成它的組成部分。 SEG (求段地址), 格式: SEG 符號名 OFFSET(求偏移地址),格式: OFFSET 符號名 TYPE (求符號名類型值),格式:TYPE 符號名 SIZE 求為符號名分配的字節(jié)數(shù) 格式: SIZE 符號名 回送分配給該符號名的字節(jié)數(shù),但此值是LENGTH的值和TYPE的值的乘積。 類 型byteworddwordqwordtbyteNEARFAR類 型 值124810-1 (FFH)-2 (FEH)第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分33 LENGTH,求為符號名分配的項數(shù)。 格式: LENGTH 符號名 這里為符號名定義的數(shù)據(jù)項必須是用重復格式DUP()定義的。而對于其他情況則回送1。 例 : K2 DW 10 DUP (?) 則 LENGTH K2 = 10 TYPE K2 = 2 SIZE K2 = 20 例: AARR DW 2,4,6 則 LENGTH AARR = 1, TYPE AARR = 2 SIZE AARR = 2可以看出: SIZE=(LENGTH)*(TYPE符號名)第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分34 5、綜合運算符 定義符號名為新類型/類型屬性操作符 格式: 類型 PTR 符號名 PTR的功能歸納如下: 保證運算時操作數(shù)類型的匹配 例: F1 DB 16H,38H F2 DW 1234H,26ABH MOV AX,WORD PTR F1;AX=3816H MOV BL,BYTE PTR F2;BL=34H第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分35 通過PTR指明是字單元還是字節(jié)單元 例: MOV BYTE PTR BX,10H;BX為字節(jié)單元 MOV WORD PTR SI,20H;SI為字單元 用PTR來改變距離屬性 例: JMP FAR PTR LLOOP CALL DWORD PTR BX 指定新類型 格式: 符號名 EQU THIS 類型 例:LABC EQU THIS BYTE ;LABC是字節(jié)類型 LABD DW 4321H, 2255H ;LABD是字類型 MOV AL , LABC ;AL = 21H MOV AX , LABD ;AX = 4321H第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分36 6、分離運算符 取低字節(jié) 格式:LOW 符號名 取高字節(jié) 格式:HIGH 符號名 例:設SSY=2050H mov al, LOW 3080H ; al = 80H mov ah, HIGH SSY ; ah = 20H mov cl, LOW 3a4bH ; cl = 4bH7、專用運算符 8、其它運算符 如果需要,請參考相關的參考書。9、匯編運算符的優(yōu)先級第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時10分37 偽指令沒有對應的機器指令,不是由CPU執(zhí)行,而是由匯編程序識別,并完成相應的功能。偽指令越多,應用越方便,MASM86的偽指令可分為14類。 1、符號定義偽指令 符號名 EQU 表達式 符號名 = 表達式 例 : port1 EQU 78 port2 EQU port1+2 counter EQU cx ;定義為寄存器 cbd EQU DAA ;定義為助記符 A = 6 A = A+2 第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分38 = 和 EQU的區(qū)別是用=定義的符號名在同一程序中可以重復定義,而用EQU定義的符號名在同一程序中不允許重復定義。 EQU與特殊運算符PTR或THIS連用,可以給變量或標號定義新的類型屬性并重新命名,但其段屬性和偏移屬性不變。例:某一程序段中有以下幾條偽指令語句,試分析個變量的屬性。 DATA SEGMENT DDBUF EQU THIS DWORD BUF DB 100 DUP(?) DWBUF EQU WORD PTR BUF DATA ENDS FIRST EQU THIS FAR;定義遠標號,其段屬性和偏移 LEA SI,BUF;屬性與緊跟其后指令的存儲地址相同 DDBUF,BUF,DWBUF分別是雙字類型、字節(jié)類型和字類型,它們?yōu)橥粩?shù)據(jù)區(qū)的 首址。 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分39 2、內(nèi)存數(shù)據(jù)定義偽指令 DB 定義字節(jié)(前面已講過定義方法) DW 定義字(2字節(jié)) DD 定義雙字(4字節(jié)) DQ 定義8字節(jié) DT 定義10字節(jié)3、段定義偽指令 段名 SEGMENT 定位方式 連接方式 類別名 段名 ENDS 定位方式 PAGE 指定起始地址的低8位是0 PARA 指定起始地址的低4位是0(隱含) WORD 指定起始地址的最低位是0 BYTE 指定起始地址是任意值第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分40 連接方式(組合類型) 組合類型告訴連接程序本段與其它段的關系。有NONE,PUBLIC,COMMON,STACK,MEMORY和AT6種。 缺省下是NONE,表示本段與其他段邏輯上不發(fā)生關系。STACK則指定該段在運行時為堆棧段的一部分。(參看相關參考書)。 類別名 類別名是用單引號括起來的字符串,連接程序只使同類別的段發(fā)生關聯(lián)。 4、段寄存器說明偽指令 ASSUME 段寄存器:段定義名1,段寄存器:段定義名2, 例:ASSUME CS:CODE, DS:DATA, ES:DATA,SS:STACK第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分41 5、過程(子程序)定義偽指令 過程名 PROC NEAR或FAR; NEAR可省略 過程名 ENDP調用過程的格式為: CALL 過程名 過程返回 RET ;段內(nèi)返回 RETF;段間返回第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分42 6、定位偽指令 格式: ORG 表達式 這里表達式是一個無符號數(shù),表示以下的程序或數(shù)據(jù)的開始地址。例4-2:下面程序段,指出變量BUF和NUM的偏移地址為多少? DATASEGMENT ORG 10 BUF DBABCD ORG $+5 NUM DW50 DATAENDS 變 量BUF的 偏 移 地 址 為10; 變 量NUM的 偏 移 地 址 為19第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分43 7、對準偽操作 格式:EVEN ;使下一個字節(jié)地址成為偶數(shù)。8、基數(shù)控制偽操作指令 格式:RADIX 表達式 該表達式表示進制的基數(shù)值(2-16),注意用十進制表示 其 它 類 型 的 偽 指 令 及 宏 指 令 , 請 參 看 相 關 的 參 考 書 。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分44 通常把DOS提供的INT 21H中斷服務程序稱為DOS功能調用,調用時根據(jù)AH的值來選擇子功能。AH=1 鍵盤鍵入并回顯, 輸入字符的ASCII碼在AL中返回 例: MOV AH, 1 INT 21HAH=2 顯示輸出字符,輸出字符的ASCII碼放入DL中 例: MOV AH, 2 MOV DL,A INT 21HAH=7 鍵盤輸入無回顯,輸入字符的ASCII碼在AL中返回 例: MOV AH, 7 INT 21H第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分45 AH=9 顯示字符串,字符串以$結束,開始位置用DS:DX指示 例: MOV AX, MY_DATA MOV DS, AX LEA DX, String MOV AH, 9 INT 21HAH=4C 程序運行結束,返回操作系統(tǒng),返回碼由AL給出 例: MOV AX, 4C00H INT 21H第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分46 1、程序編制及調試匯編語言源程序的編制 編輯環(huán)境:EDIT、ULTRAEDIT、NOTEPAD等。存盤形式:ASCII形式注意:編輯好的源程序必須以擴展名.ASM來命名。匯編源程序的編譯將匯編源程序轉換成目標(OBJ)文件編譯器:MICROSOFT MASM5.0+、BROLAND TASM2.0+存盤形式:Binary形式 注意:編譯完成后生成擴展名為.OBJ的目標文件。如果源程序有語法錯誤,則給出相應的錯誤提示及錯誤代碼。連接將一個目標文件或者多個目標文件連接(再定位)生成可執(zhí)行文件。第 四 章 匯 編 語 言 程 序 設 計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分47 連接器:MICROSOFT LINK5.0+、BROLAND TLINK2.0+ 存盤形式:Binary形式.COM文件與.EXE文件的區(qū)別1、.COM文件是內(nèi)存映像文件,執(zhí)行時直接裝入內(nèi)存即可執(zhí)行。其中 代碼段、數(shù)據(jù)段、堆棧段等的段地址完全相同。一般程序長度小于64KB。裝入執(zhí)行速度相對較快。2、.EXE文件不是內(nèi)存映像文件,執(zhí)行時需要把代碼段、數(shù)據(jù)段、堆棧段等重新定位,然后才能夠執(zhí)行。程序長度可以大于64KB。裝入執(zhí)行速度相對較慢。3、不論是.COM文件還是.EXE文件裝入內(nèi)存時都產(chǎn)生一個PSP(程序前綴段),里面是程序運行的一些基本信息,存放在程序的開始位置0-FFH,PSP的長度是256Byte。調試 調試工具:DEBUG、TDEBUG。 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分48 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分49 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分50 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分51 將程序存盤為Test1.asmd: masm Test1 ;編譯程序,不需加 .asm 擴展名d: link Test1 ;連接程序,不需加 .obj 擴展名編譯時,當執(zhí)行 d: masm Test1時,屏幕會出現(xiàn)Object filename Test1.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF:如果有語法錯誤,則還會出現(xiàn)類似的錯誤提示: Test1.ASM(18):error A2056: Immediate mode illegal編譯輸入為.ASM文件,輸出有三個文件:.OBJ,二進制目標文件.LST,列表文件,該文件列出源程序和機器碼清單,并給出符號表,以便調試。該文件可有可無。.CRF,用于產(chǎn)生交叉引用表,給出用戶定義的所有符號及所在行號。該文件可有可無。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分52 例2 編寫一個.COM文件 code segment assume cs:code,ds:code,ss:code,es:code org 100h ;偽指令, 表示下面代碼的偏移地 main proc far ;址從100h處開始 lea dx, string mov ah, 09h int 21h mov ax, 4c00h int 21h main endp string db Hello!,7,$ ;數(shù)據(jù)定義 code ends end main 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分53 DEBUG調試命令介紹 DEBUG軟件是DOS系統(tǒng)下的匯編語言調試分析工具,在DOS下執(zhí)行DEBUG.EXE出現(xiàn)提示符-,進入到DEBUG調試環(huán)境。默認條件為: 默認使用十六進制數(shù)據(jù),并且不用加后綴H; 地址一般由段地址和偏移量組成,若在命令中不指明段地址,默認使用DS中的段地址。進入DEBUG后,可按Q鍵退出,或按?查看幫助。第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分54 命令介紹匯編命令 A (Assemble)一般用法: A ;從當前地址輸入?yún)R編源程序 A 地址 ;從指定位置輸入?yún)R編程序反匯編命令 U (Unassemble)一般用法: -U ;從當前位置將機器碼反匯編成源程序 -U 地址 ;從指定位置將機器碼反匯編成源程序 -U 地址1 地址2;按照指定位置將機器碼反匯編 ;成源程序,地址1為開始位置, ;地址2為結束位置第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分55 Debug環(huán)境下執(zhí)行匯編命令A所見畫面Debug環(huán)境下執(zhí)行反匯編命令U所見畫面第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分56 顯示內(nèi)存命令 D (Display) -D ;從當前位置開始顯示128個字節(jié)的內(nèi)容 -D 地址 ;從指定位置開始顯示128個字節(jié)的內(nèi)容 -D 地址1 地址2 ;功能同上,地址1為起始地址, ;地址2為結束地址修改內(nèi)存單元命令 E (Editor) -E 地址;顯示指定內(nèi)存單元的內(nèi)容,并修改 -E 地址 數(shù)據(jù) ;修改指定地址的內(nèi)存單元的內(nèi)容, ;多個數(shù)據(jù)可以用空格隔開,用回車 ;完成修改 例: -e 100 Hello 7 $ ;單引號表示輸入ASCII碼第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分57 Debug環(huán)境下執(zhí)行顯示內(nèi)存命令d后所見畫面Debug環(huán)境下執(zhí)行顯示寄存器命令r后所見畫面第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分58 顯示和修改寄存器命令 R (Register) -R ;顯示所有寄存器的內(nèi)容 -R 寄存器名 ;顯示并修改指定寄存器的內(nèi)容 在DEBUG環(huán)境中用一些符號表示標志位,說明如下: 標志 邏輯真 邏輯假 標志 邏輯真 邏輯假 OF OV NV AF AC NA DF DN UP PF PE PO IF EI DI CF CY NC SF NG PL 沒有TF:跟蹤單步標志 ZF ZR NZ第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分59 執(zhí)行命令 G (Go) -G ;從當前IP指示的地址開始執(zhí)行程序 -G=起始地址 ;從指定的地址開始執(zhí)行程序 -G=起始地址 斷點地址 ;從指定的地址開始執(zhí)行程序,并 ;執(zhí)行到斷點處暫停單步執(zhí)行指令 T和P T:跟蹤進入子程序 P:不跟蹤進入子程序 一般用法: -T ;執(zhí)行一條指令 -T n ;執(zhí)行n條指令其他指令:N(定義名字) W(寫磁盤) L(從磁盤裝入)退出命令:Q ;退出DEBUG,返回DOS第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分60 在debug環(huán)境下編制匯編程序寫匯編程序 MOV DX, 10C MOV AH, 9;顯示字符串,DS:DX=串地址 ;$=結束符 INT 21 ; DOS功能調用 MOV AH, 4C;帶返回碼結束,AL=返回碼 INT 21寫數(shù)據(jù) -E 10C Hello!7$運行程序 -G=100取程序名字 -N T ;默認存放在當前目錄設 置 程 序 長 度 -R BX ; 設 置 程 序 長 度 : 0 ;64K的 倍 數(shù) -R CX ; 設 置 程 序 長 度 :20 ; 字 節(jié) 數(shù)第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分61 寫入磁盤: -W ;存盤,若未指定地址則從CS:0100H開始, ;要寫入的文件字節(jié)數(shù)應先放入BX和CX中執(zhí)行: -G=100 或 退出DEBUG后, 在DOS下執(zhí)行T裝入程序: -N T -L;把文件裝入存儲器,若未指定地址,則數(shù)據(jù)從CS:0100H開始第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分62 1、順序結構程序設計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分63 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分64 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分65 data1data2result+ 高 16位 低 16位CF第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分66 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分67 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分68 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分69 2、分支結構程序設計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分70 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分71 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分72 變 量 control 轉 入 子 程 序00000001 subr100000010 subr200000100 subr300001000 subr400010000 subr500100000 subr601000000 subr710000000 subr8第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分73 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分74 3、循環(huán)程序設計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分75 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分76 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分77 子程序的描述(注釋用) 子程序的功能描述 入口參數(shù)的描述 出口參數(shù)的描述子程序中用到的寄存器應用堆棧進行保護例: subr1 proc push ax pop ax ret subr1 endp4、子程序設計第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分78 子程序的參數(shù)傳遞 通過寄存器傳遞參數(shù) 通過全局變量傳遞參數(shù) 通過堆棧傳遞參數(shù) 通過代碼段來傳遞參數(shù)第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分79 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分80 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分81 BCD1 BCD0BCD3 BCD2data1 低 8位高 8位第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分82 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分83 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分84 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分85 5、字符串處理第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分86 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分87 6、數(shù)碼轉換第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分88 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分89 第 四 章 匯 編 語 言 程 序 設 計 計算機原理 2021年5月3日21時11分90 第 四 章 匯 編 語 言 程 序 設 計

注意事項

本文(盧偉《計算機原理》themicrocomputerprinciple-ch)為本站會員(san****019)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!