匯編實(shí)驗(yàn) 學(xué)生_第1頁
匯編實(shí)驗(yàn) 學(xué)生_第2頁
匯編實(shí)驗(yàn) 學(xué)生_第3頁
匯編實(shí)驗(yàn) 學(xué)生_第4頁
匯編實(shí)驗(yàn) 學(xué)生_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、匯編實(shí)驗(yàn)匯編實(shí)驗(yàn)實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)一實(shí)驗(yàn)一 匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法實(shí)驗(yàn)二實(shí)驗(yàn)二 順序程序設(shè)計(jì)順序程序設(shè)計(jì)實(shí)驗(yàn)三實(shí)驗(yàn)三 循環(huán)程序設(shè)計(jì)循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)四實(shí)驗(yàn)四 串操作串操作實(shí)驗(yàn)五實(shí)驗(yàn)五 分支程序設(shè)計(jì)分支程序設(shè)計(jì)實(shí)驗(yàn)六實(shí)驗(yàn)六 子程序程序設(shè)計(jì)和宏結(jié)構(gòu)子程序程序設(shè)計(jì)和宏結(jié)構(gòu)實(shí)驗(yàn)七實(shí)驗(yàn)七 I/O程序設(shè)計(jì)和中斷程序設(shè)計(jì)程序設(shè)計(jì)和中斷程序設(shè)計(jì)實(shí)驗(yàn)八實(shí)驗(yàn)八 綜合應(yīng)用綜合應(yīng)用實(shí)驗(yàn)一實(shí)驗(yàn)一 匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法u 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?、了解匯編語言程序的運(yùn)行環(huán)境和所需的系統(tǒng)程序;、了解匯編語言程序的運(yùn)行環(huán)境和所需的系統(tǒng)程序;2、掌

2、握數(shù)和字符在內(nèi)存中的存放,掌握加減指令;、掌握數(shù)和字符在內(nèi)存中的存放,掌握加減指令;3、掌握編輯、匯編、連接和運(yùn)行匯編程序的過程;、掌握編輯、匯編、連接和運(yùn)行匯編程序的過程;4、掌握常用的、掌握常用的DEBUG命令。命令。u 實(shí)驗(yàn)類型實(shí)驗(yàn)類型:驗(yàn)證驗(yàn)證u 實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)內(nèi)容:u題題1:閱讀、調(diào)試以下程序:閱讀、調(diào)試以下程序,理解數(shù)和字符在內(nèi)存中的存放。理解數(shù)和字符在內(nèi)存中的存放。DATA SEGMENT ;數(shù)據(jù)段數(shù)據(jù)段Data0 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15Data1 DW 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14

3、,15Data2 DD 1,2,3,4Data3 DB 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11 ,-12, -13, -14,-15Data4 DW 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11 ,-12, -13, -14,-15Data5 DB a,b,c,d,e,f,g,h,A,B,C,D,E,F,G,HData6 DB Please input a data:DATA ENDS實(shí)驗(yàn)一實(shí)驗(yàn)一 匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法CODE SEGMENT ;代碼段代碼段ASSUME CS:CODE,D

4、S:DATASTART: MOV AX, DATA MOV DS, AX MOV AL, DATA0+3 MOV BL, DATA0+6 ADD AL, BL SUB AL, 5 INC AL DEC AL ADD AL, AL MOV DL, ALADD DL, 30HMOV AH, 2INT 21HMOV AH, 4CH INT 21HCODEENDS END START u題題2:編程計(jì)算:編程計(jì)算S2*(X+Y) -Z+3已知數(shù)據(jù)段的定義如下:已知數(shù)據(jù)段的定義如下:DATA SEGMENT ;數(shù)據(jù)段數(shù)據(jù)段X DW 6Y DW -2Z DW 5S DW ?DATA ENDS實(shí)驗(yàn)一實(shí)驗(yàn)一

5、匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法u 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟1.在在D盤(或別的盤符)下新建一個(gè):盤(或別的盤符)下新建一個(gè):MASM文件夾文件夾2.把把LINK.EXE 和和MASM.EXE 拷貝到拷貝到 MASM 文件夾里文件夾里3.在在MASM 文件夾里文件夾里 新建一個(gè)新建一個(gè)txt文件,改名成:文件,改名成:xxx.asm 注:注:1)xxx表示:學(xué)號(hào)后兩位題號(hào)表示:學(xué)號(hào)后兩位題號(hào) 2)如果文件夾里不顯示擴(kuò)展名,則修改:)如果文件夾里不顯示擴(kuò)展名,則修改: 工具菜單工具菜單-文件夾選項(xiàng)文件夾選項(xiàng)-查看查看-不選:隱藏已知文件類型的擴(kuò)展名不選:隱藏已知文件類型的

6、擴(kuò)展名4.用記事本打開用記事本打開xxx.asm文件,輸入源程序,注意同級(jí)別的要對(duì)齊。文件,輸入源程序,注意同級(jí)別的要對(duì)齊。5.打開:開始菜單打開:開始菜單-附件附件-命令提示符命令提示符6.在在dos提示符下輸入:提示符下輸入: D:,然后回車,切換到:,然后回車,切換到D盤下盤下7.在在 D:cd masm ,進(jìn)入,進(jìn)入masm 目錄目錄實(shí)驗(yàn)一實(shí)驗(yàn)一 匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法u 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟8.在在d:masmmasm xxx.asm /擴(kuò)展名可省略擴(kuò)展名可省略 看提示,如果正確,會(huì)生成看提示,如果正確,會(huì)生成xxx.obj 注:注:如果源程序正

7、確,如果源程序正確,241.obj:按回車:按回車 /默認(rèn)生成默認(rèn)生成241.objNUL.lst:按回車,不生成:按回車,不生成241.lstNUL.lst:輸入:輸入241,生成,生成241.lstNUL.CRF的使用同的使用同NUL.LST實(shí)驗(yàn)一實(shí)驗(yàn)一 匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法u 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟9.執(zhí)行:執(zhí)行:d:masmlink xxx.obj /obj擴(kuò)展名可省略,如無錯(cuò)誤將生成擴(kuò)展名可省略,如無錯(cuò)誤將生成 xxx.exe 文件。文件。10.執(zhí)行:執(zhí)行:d:masmdebug xxx.exe依次練習(xí)依次練習(xí)r、t、d命令,指令執(zhí)行前預(yù)測(cè)變化,

8、指令執(zhí)行后觀察變化是否與預(yù)測(cè)相命令,指令執(zhí)行前預(yù)測(cè)變化,指令執(zhí)行后觀察變化是否與預(yù)測(cè)相符合。符合。11. 用用DEBUG命令調(diào)試題命令調(diào)試題1,用單步命令,用單步命令T執(zhí)行第一條指令,觀察指令執(zhí)行后寄執(zhí)行第一條指令,觀察指令執(zhí)行后寄存器或數(shù)據(jù)區(qū)的變化。存器或數(shù)據(jù)區(qū)的變化。12. 寫出實(shí)現(xiàn)題寫出實(shí)現(xiàn)題2的指令系列(只能用的指令系列(只能用mov、add指令),并進(jìn)行調(diào)試指令),并進(jìn)行調(diào)試 。實(shí)驗(yàn)一實(shí)驗(yàn)一 匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法實(shí)驗(yàn)問題(按實(shí)驗(yàn)問題的解答狀況給出分?jǐn)?shù))實(shí)驗(yàn)問題(按實(shí)驗(yàn)問題的解答狀況給出分?jǐn)?shù))1.數(shù)據(jù)段和代碼段的地址空間?如何獲取的?數(shù)據(jù)段和

9、代碼段的地址空間?如何獲取的?2.數(shù)據(jù)段中的數(shù)組數(shù)據(jù)段中的數(shù)組DATA0DATA6分別在內(nèi)存中的存儲(chǔ)空間、每個(gè)元分別在內(nèi)存中的存儲(chǔ)空間、每個(gè)元素的存儲(chǔ)空間大小、存儲(chǔ)形式、存儲(chǔ)值?素的存儲(chǔ)空間大小、存儲(chǔ)形式、存儲(chǔ)值?3.寫出下列代碼間每條代碼執(zhí)行后,數(shù)據(jù)段的哪一個(gè)單元或哪一個(gè)寄寫出下列代碼間每條代碼執(zhí)行后,數(shù)據(jù)段的哪一個(gè)單元或哪一個(gè)寄存器的值發(fā)生了變化,原來是多少,本條代碼執(zhí)行后變成了多少存器的值發(fā)生了變化,原來是多少,本條代碼執(zhí)行后變成了多少START:MOV AX, DATA MOV AH, 24.在本例用到的操作符中,那些可能會(huì)引起狀態(tài)寄存器的變化?在本例用到的操作符中,那些可能會(huì)引起狀態(tài)

10、寄存器的變化?5.MOV AH, 2 和和 MOV AH, 4CH INT 21HINT 21H的功能分別是什么?的功能分別是什么?6.題題2執(zhí)行完后,執(zhí)行完后,S的偏移地址是多少,絕對(duì)地址是多少,內(nèi)容是什么?的偏移地址是多少,絕對(duì)地址是多少,內(nèi)容是什么?7.對(duì)對(duì)Debug中的命令,已經(jīng)掌握了哪些命令的用法,哪些還未掌握?中的命令,已經(jīng)掌握了哪些命令的用法,哪些還未掌握?實(shí)驗(yàn)一實(shí)驗(yàn)一 匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法匯編語言程序的運(yùn)行環(huán)境和運(yùn)行方法附錄附錄: 基本基本debug操作操作1、顯示內(nèi)存單元的內(nèi)容:、顯示內(nèi)存單元的內(nèi)容:d 地址地址 或或 范圍范圍2、修改內(nèi)存單元的內(nèi)容:、修改內(nèi)存單

11、元的內(nèi)容:e 地址地址 內(nèi)容表內(nèi)容表 或或 e 地址地址3、顯示、顯示CPU內(nèi)部寄存器和標(biāo)志位狀態(tài):內(nèi)部寄存器和標(biāo)志位狀態(tài):r4、顯示和修改某個(gè)寄存器的內(nèi)容:、顯示和修改某個(gè)寄存器的內(nèi)容:r 寄存器名寄存器名5、匯編命令:、匯編命令:a 地址地址6、逐條指令追蹤:、逐條指令追蹤:t 地址地址 (無地址則執(zhí)行(無地址則執(zhí)行IP所指示的指令)所指示的指令)7、退出、退出debug:q8、多條指令追蹤:、多條指令追蹤:t =地址地址 n 注:該指令從指定地址起執(zhí)行注:該指令從指定地址起執(zhí)行n條命令后停下來?xiàng)l命令后停下來9、運(yùn)行命令:、運(yùn)行命令:g =地址地址1 地址地址2 地址地址3.地址地址1規(guī)定

12、了運(yùn)行起始地址,后面的地址均為若干斷點(diǎn)地址規(guī)定了運(yùn)行起始地址,后面的地址均為若干斷點(diǎn)地址10、反匯編命令:、反匯編命令:(1) u 地址地址該命令從指定地址開始,反匯編該命令從指定地址開始,反匯編32個(gè)字節(jié),若省略地址,則從上一個(gè)個(gè)字節(jié),若省略地址,則從上一個(gè)u命命令的最后一條指令的下一單元開始顯示令的最后一條指令的下一單元開始顯示32個(gè)字節(jié)個(gè)字節(jié)(2) u 范圍范圍該命令對(duì)指定范圍的內(nèi)存單元進(jìn)行反匯編該命令對(duì)指定范圍的內(nèi)存單元進(jìn)行反匯編如:如:u 04ba:0100 0108等價(jià)于:等價(jià)于: u 04ba:0100 L9實(shí)驗(yàn)二實(shí)驗(yàn)二順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?.掌握匯

13、編語言程序格式、順序程序結(jié)構(gòu)掌握匯編語言程序格式、順序程序結(jié)構(gòu)2.掌握直接尋址方式、數(shù)據(jù)與地址掌握直接尋址方式、數(shù)據(jù)與地址3.掌握匯編程序的處理過程。掌握匯編程序的處理過程。 實(shí)驗(yàn)類型:驗(yàn)證實(shí)驗(yàn)類型:驗(yàn)證+設(shè)計(jì)設(shè)計(jì)實(shí)驗(yàn)二實(shí)驗(yàn)二順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題1:閱讀下面的代碼,并說明該程序的功能:閱讀下面的代碼,并說明該程序的功能DATA SEGMENT X DW 5DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,X ADD AX,AX MOV BX,AX AD

14、D AX,AX ADD AX,AX ADD AX,BX MOV AX,4C00H INT 21HCODE ENDS ENDSTART實(shí)驗(yàn)二實(shí)驗(yàn)二順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題2:閱讀程序,理解各指令的功能,調(diào)試、運(yùn)行程序,觀察結(jié)果并記錄。:閱讀程序,理解各指令的功能,調(diào)試、運(yùn)行程序,觀察結(jié)果并記錄。DATA SEGMENT X DB 5 Y DB 3 S DB ? STR DB 3+5=,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,X ;MOV AL,0

15、000H MOV BL,Y ;MOV BL,0001H ADD AL,BL MOV S,AL ;MOV 0002H,AL ;輸出一個(gè)字符串輸出一個(gè)字符串 MOV AH,9 MOV DX,OFFSET STR INT 21H ;輸出一個(gè)字符輸出一個(gè)字符 MOV AH,2 MOV DL,S ADD DL,30H INT 21H MOV AX,4C00H INT 21HCODE ENDS END START實(shí)驗(yàn)二實(shí)驗(yàn)二順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題3:編寫程序,在以:編寫程序,在以TABLE為首的地址中順序存放有為首的地址中順序存放有0-9的立方數(shù),從鍵盤上輸入一個(gè)數(shù)(的立方

16、數(shù),從鍵盤上輸入一個(gè)數(shù)(0-9),求其立方值,),求其立方值,結(jié)果存入結(jié)果存入RSLT單元。單元。實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟閱讀題閱讀題1程序,理解各指令的功能,調(diào)試程序,觀察各程序,理解各指令的功能,調(diào)試程序,觀察各寄寄存器的變化。寄寄存器的變化。閱讀題閱讀題2程序,調(diào)試、運(yùn)行程序,觀察結(jié)果。程序,調(diào)試、運(yùn)行程序,觀察結(jié)果。編寫題編寫題3程序并調(diào)試。程序并調(diào)試??偨Y(jié)總結(jié)總結(jié)總結(jié)MOV、ADD、SUB、INC、DEC指令的格式、功能。指令的格式、功能??偨Y(jié)物理地址、段地址、偏移地址的關(guān)系??偨Y(jié)物理地址、段地址、偏移地址的關(guān)系??偨Y(jié)直接尋址方式的格式、功能??偨Y(jié)直接尋址方式的格式、功能。實(shí)驗(yàn)三實(shí)驗(yàn)三循環(huán)結(jié)

17、構(gòu)程序設(shè)計(jì)(循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(4課時(shí))課時(shí)) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?掌握循環(huán)結(jié)構(gòu)的設(shè)計(jì)方法、循環(huán)控制方法掌握循環(huán)結(jié)構(gòu)的設(shè)計(jì)方法、循環(huán)控制方法 實(shí)驗(yàn)屬性:設(shè)計(jì)實(shí)驗(yàn)屬性:設(shè)計(jì) 內(nèi)容提要內(nèi)容提要1設(shè)計(jì)、編寫循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)、編寫循環(huán)結(jié)構(gòu)的程序2通過調(diào)試觀察循環(huán)結(jié)構(gòu)的運(yùn)行過程,掌握循環(huán)結(jié)構(gòu)的通過調(diào)試觀察循環(huán)結(jié)構(gòu)的運(yùn)行過程,掌握循環(huán)結(jié)構(gòu)的控制方法控制方法3. 掌握計(jì)數(shù)法、條件控制法掌握計(jì)數(shù)法、條件控制法實(shí)驗(yàn)三實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(4課時(shí))課時(shí)) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題1:將程序填寫完整,輸出:將程序填寫完整,輸出26個(gè)大寫英文字符(用循環(huán)結(jié)構(gòu)個(gè)大寫英文字符(用循環(huán)結(jié)構(gòu)實(shí)現(xiàn))。實(shí)現(xiàn))。 d

18、ata segment mes db English:$data endscode segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ah,9 ;輸出提示信息輸出提示信息 lea dx,mes int 21h mov cx, 26 mov dl, ;輸出一個(gè)字符輸出一個(gè)字符next: mov ah,2 int 21h loop next mov ax,4c00h int 21hcode ends end start實(shí)驗(yàn)三實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(4課時(shí))課時(shí)) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題2:在數(shù)據(jù)段以:在數(shù)

19、據(jù)段以array 為首地址的緩沖區(qū)內(nèi)有為首地址的緩沖區(qū)內(nèi)有10個(gè)字?jǐn)?shù)據(jù),個(gè)字?jǐn)?shù)據(jù),編程求其累加和并存入編程求其累加和并存入SUM字單元中(用循環(huán)結(jié)構(gòu)實(shí)字單元中(用循環(huán)結(jié)構(gòu)實(shí)現(xiàn))?,F(xiàn))。(數(shù)據(jù)段如下,請(qǐng)編寫源程序,并調(diào)試數(shù)據(jù)段如下,請(qǐng)編寫源程序,并調(diào)試) data segment array dw 1,2,3,4,5,6,7,8,9,10 sum dw ? data ends實(shí)驗(yàn)三實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(4課時(shí))課時(shí)) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題3:在數(shù)據(jù)段以:在數(shù)據(jù)段以array1 為首地址的緩沖區(qū)內(nèi)有為首地址的緩沖區(qū)內(nèi)有10個(gè)字?jǐn)?shù)據(jù),個(gè)字?jǐn)?shù)據(jù),編程將其按順序傳送到附加段以編程將其

20、按順序傳送到附加段以array2 為首地址的緩沖為首地址的緩沖區(qū)內(nèi)(用循環(huán)結(jié)構(gòu)實(shí)現(xiàn))。區(qū)內(nèi)(用循環(huán)結(jié)構(gòu)實(shí)現(xiàn))。(數(shù)據(jù)段、附加段如下,請(qǐng)編數(shù)據(jù)段、附加段如下,請(qǐng)編寫源程序,并調(diào)試寫源程序,并調(diào)試) data segment array1 dw 0111h,0222h,0333h,0444h,0555h,0666h,0777h,0888h,0999h,0AAAh data ends extra segment array2 dw 10 dup(? ) ;重復(fù)定義重復(fù)定義10個(gè)空字個(gè)空字 extra ends題題4:編程找出數(shù)據(jù)段:編程找出數(shù)據(jù)段10字?jǐn)?shù)據(jù)中的最小數(shù)并輸出。字?jǐn)?shù)據(jù)中的最小數(shù)并輸出。題

21、題5:編程對(duì)一組數(shù)據(jù)升序排序,并輸出結(jié)果。:編程對(duì)一組數(shù)據(jù)升序排序,并輸出結(jié)果。 實(shí)驗(yàn)三實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(4課時(shí))課時(shí)) 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟閱讀各程序,理解各指令的功能,調(diào)試程序,觀察各寄存閱讀各程序,理解各指令的功能,調(diào)試程序,觀察各寄存器的變化。器的變化。 實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告總結(jié)循環(huán)結(jié)構(gòu)的設(shè)計(jì)方法、循環(huán)控制方法??偨Y(jié)循環(huán)結(jié)構(gòu)的設(shè)計(jì)方法、循環(huán)控制方法。實(shí)驗(yàn)四實(shí)驗(yàn)四 串操作(串操作(2學(xué)時(shí))學(xué)時(shí)) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?理解掌握串指令的功能理解掌握串指令的功能2掌握重復(fù)前綴的使用。掌握重復(fù)前綴的使用。 實(shí)驗(yàn)屬性實(shí)驗(yàn)屬性驗(yàn)證驗(yàn)證+設(shè)計(jì)設(shè)計(jì) 內(nèi)容提要內(nèi)容提要1編寫程序?qū)崿F(xiàn)串傳送、串

22、比較、串掃描編寫程序?qū)崿F(xiàn)串傳送、串比較、串掃描2Rep/repe/repne的使用的使用實(shí)驗(yàn)四實(shí)驗(yàn)四 串操作(串操作(2學(xué)時(shí))學(xué)時(shí)) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題1:將程序填寫完整,將:將程序填寫完整,將a段的字?jǐn)?shù)據(jù)傳送到段的字?jǐn)?shù)據(jù)傳送到b段(用串指令實(shí)現(xiàn))。段(用串指令實(shí)現(xiàn))。a segment hnm1 dw 0Ah,0Bh,0Ch,0Dh,0Eh,0Fha endsb segment hnm2 dw 6 dup(?)b endscode segment assume start: mov ax, a mov ds,ax mov ax, b mov es,ax mov si, offset hnm

23、1mov di, offset hnm2 mov cx, 6 cld MOVS B,A mov ax,4c00h int 21h code ends end start實(shí)驗(yàn)四實(shí)驗(yàn)四 串操作(串操作(2學(xué)時(shí))學(xué)時(shí)) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題2:在數(shù)據(jù)段以:在數(shù)據(jù)段以array 為首地址的緩沖區(qū)內(nèi)有為首地址的緩沖區(qū)內(nèi)有10個(gè)字?jǐn)?shù)據(jù),編個(gè)字?jǐn)?shù)據(jù),編程查找數(shù)字程查找數(shù)字8,找到后輸出,找到后輸出“FIND!”,若找不到則輸出,若找不到則輸出“NOT FIND!”,(用串指令實(shí)現(xiàn))。,(用串指令實(shí)現(xiàn))。(數(shù)據(jù)段、附加段如下,數(shù)據(jù)段、附加段如下,請(qǐng)編寫完整的源程序請(qǐng)編寫完整的源程序)Data segment

24、Mes1 db FIND!,$ Mes2 db NOT FIND!,$Data endsExtra segment array dw 1,2,3,4,5,6,7,8,9,10Extra ends題題3:編程比較兩個(gè)字?jǐn)?shù)組:編程比較兩個(gè)字?jǐn)?shù)組array1和和array2,若二者完全相同,若二者完全相同,則輸出則輸出“equal!”, 若二者不相同,則輸出若二者不相同,則輸出“not equal!”。要求。要求源串在數(shù)據(jù)段中,目的串在附加段中。源串在數(shù)據(jù)段中,目的串在附加段中。實(shí)驗(yàn)四實(shí)驗(yàn)四 串操作(串操作(2學(xué)時(shí))學(xué)時(shí)) 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟閱讀各程序,理解各指令的功能,編寫源程序,并進(jìn)行調(diào)閱讀各程序

25、,理解各指令的功能,編寫源程序,并進(jìn)行調(diào)試。試。題題2分別查找分別查找8和和18,觀察程序執(zhí)行的結(jié)果。,觀察程序執(zhí)行的結(jié)果。 總結(jié)總結(jié)總結(jié)總結(jié)movsb/movsw,lodsb/lodsw,stosb/stosw,cmpsb/cmpsw,scasb/scasw指令的功能。寫出與各指指令的功能。寫出與各指令同等功能的指令系列。令同等功能的指令系列??偨Y(jié)總結(jié)Rep/repe/repne重復(fù)、退出重復(fù)的條件,寫出等價(jià)重復(fù)、退出重復(fù)的條件,寫出等價(jià)指令。指令。實(shí)驗(yàn)五實(shí)驗(yàn)五 分支程序設(shè)計(jì)分支程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?、掌握兩分支程序的設(shè)計(jì)方法。、掌握兩分支程序的設(shè)計(jì)方法。2、掌握多分支程序的設(shè)計(jì)方法。

26、、掌握多分支程序的設(shè)計(jì)方法。 實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容1、編程統(tǒng)計(jì)下列數(shù)據(jù)中正數(shù)和、編程統(tǒng)計(jì)下列數(shù)據(jù)中正數(shù)和負(fù)數(shù)的個(gè)數(shù)并輸出。負(fù)數(shù)的個(gè)數(shù)并輸出。(DH統(tǒng)計(jì)正統(tǒng)計(jì)正數(shù),數(shù),DL統(tǒng)計(jì)負(fù)數(shù)統(tǒng)計(jì)負(fù)數(shù))Num DW 12,-45,88,98,-56,95,100 參考流程圖如右圖所示:參考流程圖如右圖所示:實(shí)驗(yàn)五實(shí)驗(yàn)五 分支程序設(shè)計(jì)分支程序設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容2、從鍵盤上輸入、從鍵盤上輸入05,顯示對(duì)應(yīng)的錯(cuò)誤提示信息。,顯示對(duì)應(yīng)的錯(cuò)誤提示信息。DSEG SEGMENT CR=13LF=10EOM= $mes1 db please input n(05): (q-exi

27、t), CR,LF,EOMerror0 DB this is Error0!, CR,LF,EOMerror1 DB this is Error1!, CR,LF,EOMerror2 DB this is Error2!, CR,LF,EOMerror3 DB this is Error3!, CR,LF,EOMerror4 DB this is Error4!, CR,LF,EOMerror5 DB this is Error5!, CR,LF,EOMerroraddr dw diserr0,diserr1,diserr2,diserr3,diserr4,diserr5DSEG ENDS實(shí)驗(yàn)

28、五實(shí)驗(yàn)五 分支程序設(shè)計(jì)分支程序設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容CSEG SEGMENT ASSUME CS:CSEG,DS:DSEGSTART:mov ax,DSEG mov ds,ax next: lea dx,mes1 mov ah,9 int 21h mov ah,1 int 21h cmp al,q je exit sub al,30h mov ah,0 lea bx,erroraddr add ax,ax add bx,ax jmp word ptrbxdiserr0 :mov ah,9 mov dx, offset error0 int 21h jmp nextdiserr1 :mov ah

29、,9 mov dx, offset error1 int 21h jmp nextdiserr2 :mov ah,9 mov dx, offset error2 int 21h jmp next實(shí)驗(yàn)五實(shí)驗(yàn)五 分支程序設(shè)計(jì)分支程序設(shè)計(jì) diserr3 :mov ah,9 mov dx, offset error3 int 21h jmp nextdiserr4 :mov ah,9 mov dx, offset error4 int 21h jmp nextdiserr5 :mov ah,9 mov dx, offset error5 int 21h jmp nextexit: mov ah,4c

30、h int 21hCSEG ENDS END start實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)內(nèi)容: 3、編程統(tǒng)計(jì)下列成績(jī)、編程統(tǒng)計(jì)下列成績(jī)中及格與不及格的人數(shù),并中及格與不及格的人數(shù),并輸出。輸出。 Score db 78,90,56,99,39,66,-1 (其中其中-1為為結(jié)束符結(jié)束符)實(shí)驗(yàn)五實(shí)驗(yàn)五 分支程序設(shè)計(jì)分支程序設(shè)計(jì) 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟1、分析實(shí)驗(yàn)內(nèi)容、分析實(shí)驗(yàn)內(nèi)容1流程圖,根據(jù)流程圖寫出源程序流程圖,根據(jù)流程圖寫出源程序,在在debug下調(diào)試程序。下調(diào)試程序。2、編輯運(yùn)行實(shí)驗(yàn)內(nèi)容、編輯運(yùn)行實(shí)驗(yàn)內(nèi)容2,理解利用地址跳躍表法實(shí)現(xiàn)多分,理解利用地址跳躍表法實(shí)現(xiàn)多分支結(jié)構(gòu)的設(shè)計(jì)方法。支結(jié)構(gòu)的設(shè)計(jì)方法。3、對(duì)內(nèi)容

31、、對(duì)內(nèi)容3編寫程序并調(diào)試。編寫程序并調(diào)試。 實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告1、根據(jù)實(shí)驗(yàn)內(nèi)容、根據(jù)實(shí)驗(yàn)內(nèi)容1的流程圖,寫出源程序。的流程圖,寫出源程序。2、分析、調(diào)試實(shí)驗(yàn)內(nèi)容、分析、調(diào)試實(shí)驗(yàn)內(nèi)容2的程序,畫出其流程圖。的程序,畫出其流程圖。3、編寫實(shí)驗(yàn)內(nèi)容、編寫實(shí)驗(yàn)內(nèi)容3的源程序并進(jìn)行調(diào)試,及畫出其流程圖。的源程序并進(jìn)行調(diào)試,及畫出其流程圖。實(shí)驗(yàn)六實(shí)驗(yàn)六 子程序程序設(shè)計(jì)子程序程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?掌握子程序的定義、調(diào)用和返回掌握子程序的定義、調(diào)用和返回2掌握子程序的參數(shù)傳遞方法和子程序的嵌套掌握子程序的參數(shù)傳遞方法和子程序的嵌套實(shí)驗(yàn)類型:設(shè)計(jì)實(shí)驗(yàn)類型:設(shè)計(jì)實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題1:編寫程序:在顯示器上以:

32、編寫程序:在顯示器上以16進(jìn)制形式顯示數(shù)組進(jìn)制形式顯示數(shù)組x1中的值。中的值。x1 dw 0FBH, 0ABCDH子程序功能:在顯示器上子程序功能:在顯示器上以以16進(jìn)制形式進(jìn)制形式顯示顯示BX寄存器中的數(shù)據(jù)。寄存器中的數(shù)據(jù)。題題2:編寫程序:在顯示器上以:編寫程序:在顯示器上以10進(jìn)制形式顯示字?jǐn)?shù)據(jù)。進(jìn)制形式顯示字?jǐn)?shù)據(jù)。x1 dw 0FFHx2 dw 0FFFFHres1 db 5 dup(?)res2 db 5 dup(?)子程序功能:在顯示器上子程序功能:在顯示器上以以10進(jìn)制形式進(jìn)制形式顯示顯示BX寄存器中的數(shù)據(jù),寄存器中的數(shù)據(jù),并且把顯示的十進(jìn)制數(shù)據(jù)的并且把顯示的十進(jìn)制數(shù)據(jù)的ASCI

33、I按顯示順序保存到按顯示順序保存到SI所指示所指示的緩沖區(qū)中(的緩沖區(qū)中(x1res1, x2res2 )。實(shí)驗(yàn)六實(shí)驗(yàn)六 子程序程序設(shè)計(jì)子程序程序設(shè)計(jì) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容題題3:編寫程序:在顯示器上以二進(jìn)制形式顯示字?jǐn)?shù)據(jù)。:編寫程序:在顯示器上以二進(jìn)制形式顯示字?jǐn)?shù)據(jù)。x1 dw 0FBH子程序功能:在顯示器上子程序功能:在顯示器上以二進(jìn)制形式以二進(jìn)制形式顯示顯示BX寄存器中的數(shù)據(jù)。寄存器中的數(shù)據(jù)。題題4:編寫一個(gè)宏:完成輸出字符串的功能。:編寫一個(gè)宏:完成輸出字符串的功能。實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟1、編寫、調(diào)試實(shí)驗(yàn)內(nèi)容、編寫、調(diào)試實(shí)驗(yàn)內(nèi)容1的程序。的程序。2、編寫、調(diào)試實(shí)驗(yàn)內(nèi)容、編寫、調(diào)試實(shí)驗(yàn)內(nèi)容2的程

34、序,修改程序?qū)⒂行?shù)字前的零去掉。的程序,修改程序?qū)⒂行?shù)字前的零去掉。3、編寫、調(diào)試實(shí)驗(yàn)內(nèi)容、編寫、調(diào)試實(shí)驗(yàn)內(nèi)容3的程序。的程序。實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告1、總結(jié)子程序的定義、調(diào)用、返回、參數(shù)傳遞。、總結(jié)子程序的定義、調(diào)用、返回、參數(shù)傳遞。實(shí)驗(yàn)七實(shí)驗(yàn)七 I/O程序設(shè)計(jì)與中斷程序設(shè)計(jì)程序設(shè)計(jì)與中斷程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?掌握掌握I/O基本指令的使用;基本指令的使用;2掌握基本的輸入掌握基本的輸入/輸出方法:程序直接控制輸出方法:程序直接控制I/O方式和中斷傳送方式,了解方式和中斷傳送方式,了解DMA傳送方式;傳送方式;3掌握中斷的基本原理,掌握簡(jiǎn)單的中斷處理程序設(shè)計(jì)。掌握中斷的基本原理,掌握簡(jiǎn)單的中斷處理程序設(shè)計(jì)。實(shí)驗(yàn)類型:設(shè)計(jì)實(shí)驗(yàn)類型:設(shè)計(jì)實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容1編寫編寫0號(hào)中斷處理程序,使得在除法溢出發(fā)生時(shí),在屏幕顯示號(hào)中斷處理程序,使得在除法溢出發(fā)生時(shí),在屏幕顯示“*chu facuowu*”,然后返回然后返回DOS。2自定義一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論