![微機(jī)原理與接口技術(shù)實驗教案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/0e857687-636e-498f-bc54-d65a6bcfc311/0e857687-636e-498f-bc54-d65a6bcfc3111.gif)
![微機(jī)原理與接口技術(shù)實驗教案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/0e857687-636e-498f-bc54-d65a6bcfc311/0e857687-636e-498f-bc54-d65a6bcfc3112.gif)
![微機(jī)原理與接口技術(shù)實驗教案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/0e857687-636e-498f-bc54-d65a6bcfc311/0e857687-636e-498f-bc54-d65a6bcfc3113.gif)
![微機(jī)原理與接口技術(shù)實驗教案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/0e857687-636e-498f-bc54-d65a6bcfc311/0e857687-636e-498f-bc54-d65a6bcfc3114.gif)
![微機(jī)原理與接口技術(shù)實驗教案_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/0e857687-636e-498f-bc54-d65a6bcfc311/0e857687-636e-498f-bc54-d65a6bcfc3115.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理與接口技術(shù)實驗講義物理與電子工程學(xué)院羅長更顯示程序?qū)嶒?數(shù)據(jù)傳送實驗5運算類程序?qū)嶒?分支程序設(shè)計實驗17循環(huán)程序設(shè)計實驗20綜合程序設(shè)計實驗22顯示程序?qū)嶒瀸嶒災(zāi)康?1) 掌握在PC機(jī)上以十六進(jìn)制形式顯示數(shù)據(jù)的方法。(2) 掌握部分DOS功能調(diào)用使用方法。(3) 熟悉Tdpit集成環(huán)境和調(diào)試器的使用。實驗內(nèi)容及說明 一般來說,有很多程序需要顯示輸出提示運行的狀況和結(jié)果,有的還需要將數(shù)據(jù)區(qū)中的內(nèi)容顯示在屏幕上。本實驗要求將指定數(shù)據(jù)區(qū)的數(shù)據(jù)以十六進(jìn)制數(shù)形式顯示在屏幕上,并通過DOS功能調(diào)用完成一些提示信息的顯示。實驗中可使用DOS功能調(diào)用(INT 2
2、1H)。 (1) 顯示單個字符輸出 入口:AH=02H 調(diào)用參數(shù):DL=輸出字符 (2) 顯示字符串 入口:AH=09H 調(diào)用參數(shù):DS:DX=串地址,$為結(jié)束字符 (3) 鍵盤輸入并回顯 入口:AH=01H 返回參數(shù):AL=輸出字符 (4) 返回DOS系統(tǒng) 入口:AH=4CH 調(diào)用參數(shù):AL=返回碼 實驗步驟 (1) 運行Tdpit軟件,選擇文件菜單,點擊新建,進(jìn)入一個源文件編輯界面。根據(jù)實驗內(nèi)容的描述編寫實驗程序,本實驗顯示部分參考實驗流程如圖1所示。 (2) 使用編譯菜單中的編譯和鏈接對實驗程序進(jìn)行匯編、連接。 (3) 使用編譯菜單中的運行,運行程序,觀察運行結(jié)果。 (4) 使用編譯菜單
3、中的調(diào)試,調(diào)試程序,觀察調(diào)試過程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內(nèi)容。 (5) 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),檢查程序的正確性。 參考程序清單 DATASEGMENT MESDB'Show a as hex:',0AH,0DH,'$' SDDB'a' DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA START:MOV AX,DATA MOVDS,AX MOVDX,OFFSET MES;顯示提示信息 MOVAH,09HINT 21H MOVDI,OFFSET SD MOVAL,DS:DI ANDAL
4、,0F0H;取高4位 SHRAL,4 圖1 CMPAL,0AH;是否是A以上的數(shù) JBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;顯示字符 MOVAH,02H INT21H MOVAL,DS:DI ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07H C3:ADDAL,30H MOVDL,AL;顯示字符 MOVAH,02H INT21H MOVAX,4C00H;返回DOS INT21H CODEENDS ENDSTART 數(shù)據(jù)傳送實驗 實驗?zāi)康?(1) 熟悉Tdpit集成環(huán)境和調(diào)試器的使用。 (2) 掌握與數(shù)據(jù)有關(guān)的不同尋
5、址方式。 實驗內(nèi)容 本實驗要求將數(shù)據(jù)段中的一個字符串傳送到附加段中,并輸出附加段中的目標(biāo)字符串到屏幕上。實驗步驟 (1) 運行Tdpit軟件,選擇文件菜單,點擊新建進(jìn)行實驗程序的編寫。 (2) 使用編譯菜單中的編譯和連接對實驗程序進(jìn)行匯編、連接。 (3) 使用編譯菜單中的運行,運行程序,觀察運行結(jié)果。 (4) 使用編譯菜單中的調(diào)試,調(diào)試程序,觀察調(diào)試過程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內(nèi)容。 (5) 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 參考程序:DDATASEGMENT;定義源數(shù)據(jù)段 MSRDB "HELLO,WORLD!$" LENEQU $-
6、 MSR DDATAENDS EXDASEGMENT;定義附加數(shù)據(jù)段 MSDDB LEN DUP(?) EXDAENDS MYSTACK SEGMENT STACK;定義堆棧段 DW 20 DUP(?) MYSTACK ENDS CODESEGMENT;定義代碼段 ASSUME CS:CODE,DS:DDATA,ES:EXDA START:MOV AX,DDATA MOV DS,AX;裝載數(shù)據(jù)段寄存器 MOV AX,EXDA MOV ES,AX;裝載附加數(shù)據(jù)段寄存器 MOV SI,OFFSET MSR;設(shè)置SI MOV DI,OFFSET MSD;設(shè)置DI MOV
7、CX,LEN NEXT:MOV AL,SI;開始傳輸數(shù)據(jù) MOV ES:DI,AL INC SI INC DIDEC CX JNZ NEXT PUSH ESPOP DS;將附加段寄存器指向的段值賦給數(shù)據(jù)段寄存器 MOV DX,OFFSET MSDMOV AH,9 INT 21H MOV AX,4C00H;利用DOS功能調(diào)用返回DOS狀態(tài) INT 21H CODEENDS END START 將程序主體部分的寄存器間接尋址方式改為相對尋址方式,則如下所示: MOV BX,0 MOV CX,LEN NEXT:MOV AL,MSRBX MOV ES:MSDBX,AL INC BX LOOP NEXT
8、 運算類程序?qū)嶒瀸嶒災(zāi)康?(1) 掌握運算類指令編程及調(diào)試方法。 (2) 掌握運算類指令對各狀態(tài)標(biāo)志位的影響及測試方法。 實驗內(nèi)容及說明 80x86指令系統(tǒng)提供了實現(xiàn)加、減、乘、除運算的基本指令,可對表1所示的數(shù)據(jù)類型進(jìn)行算術(shù)運算。 表11二進(jìn)制雙精度加法運算 本實驗要求計算X+Y=Z,將結(jié)果Z輸出到屏幕,其中X=001565A0H,Y=0021B79EH。 實驗利用累加器AX,先求低十六位和,并存入低址存儲單元,后求高16位和,再存入高址存儲單元。由于低位和可能向高位有進(jìn)位,因而高位字相加語句需用ADC
9、指令,則低位相加有進(jìn)位時,CF=1,高位字相加時,同時加上CF中的1。在80386以上微機(jī)中可以直接使用32位寄存器和32位加法指令完成本實驗的功能。 2十進(jìn)制數(shù)的BCD碼減法運算 本實驗要求計算X-Y=Z,其中,X、Y、Z為BCD碼,其中X=0400H,Y=0102H。 3乘法運算 本實驗要求實現(xiàn)十進(jìn)制數(shù)的乘法,被乘數(shù)和乘數(shù)均以BCD碼形式存放于內(nèi)存中,被乘數(shù)為54320H,乘數(shù)為3H,運算結(jié)束后,將乘積在屏幕上顯示。 4用減奇數(shù)開平方運算 80x86
10、指令系統(tǒng)中有乘除法指令但沒有開平方指令,因此,開平方運算是通過程序來實現(xiàn)的。用減奇數(shù)法可求得近似平方根,獲得平方根的整數(shù)部分。我們知道,N個自然數(shù)中的奇數(shù)之和等于N2,即: 1+3+5=9=32 1+3+5+7=16=42 1+3+5+7+9+11+13+15=64=82 若要做S的開方運算,那麼就可以從S中逐次減去自然數(shù)中的奇數(shù)1,3,5,7,一直進(jìn)行到相減數(shù)為0或不夠減下一個自然數(shù)的奇數(shù)為止,然后統(tǒng)計減去自然數(shù)的奇數(shù)個數(shù),它就是S的近似平方根。 本實驗要求利用減奇法計算0040H的開平方值,并將運算結(jié)果顯示在屏幕上。 實驗步驟 (1) 運行Tdpit軟
11、件,選擇文件菜單進(jìn)行實驗程序的編寫。 (2) 使用編譯菜單中的編譯和連接對實驗程序進(jìn)行匯編、連接。 (3) 使用編譯菜單中的運行,運行程序,觀察運行結(jié)果。 (4) 使用編譯菜單中的調(diào)試,調(diào)試程序,觀察調(diào)試過程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內(nèi)容。 (5) 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 參考程序兩個字節(jié)數(shù)據(jù)相加STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1DB'The result is:$'X DB 03HY DB 05HDATAENDSCODE SEGMENTASSUME CS:C
12、ODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,00H MOV SI,OFFSET X MOV AL,SI ADD AL,SI+01H AND AL,0FH MOV BL,AL MOVDX,OFFSET MES1 MOVAH,09H INT21H MOVAX,BX CALLSHOW MOVAX,4C00H INT21H SHOWPROCNEAR MOVAL,BL ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的數(shù) JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;show character
13、 MOVAH,02H INT21H MOVAL,BL ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H RET ENDPCODE ENDS END START;A4-1.asm;二進(jìn)制雙精度加法運算STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1DB'The result is:$'XL DW 65A0HXH DW 0015HYL DW 0B79EHYH DW 002
14、1HDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOVDX,OFFSET MES1 MOVAH,09H INT21H MOV AX,XL ADD AX,YL MOVBX,AX MOV AX,XH ADC AX,YH PUSHBX CALLSHWORD POPBX MOVAX,BX CALLSHWORD MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PU
15、SHDX MOVAL,BL ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的數(shù) JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVAL,BL ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H POPDX POPAX RET ENDPCODE ENDS END START;A4-2.asm;十進(jìn)制數(shù)的BCD碼減法運算STACK1 S
16、EGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1DB'The result is:$'X DW 0400HY DW 0102HDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,00H SAHF MOV SI,OFFSET X MOV AL,SI SBB AL,SI+02H DAS PUSHF AND AL,0FH POPF MOV BL,AL INC SI MOV AL,SI SBB AL,SI+02H DAS PU
17、SHF AND AL,0FH POPF MOV BH,AL MOVDX,OFFSET MES1 MOVAH,09H INT21H MOVAX,BX CALLSHWORD MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的數(shù) JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;show character MOVAH,0
18、2H INT21H MOVAL,BL ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H POPDX POPAX RET ENDPCODE ENDS END START;A4-3.asm;乘法運算STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES1 DB 'The result is:$'ERRMES DB 'Error exist!$'DATA1 DB 0
19、0H,02H,03H,04H,05HDATA2 DB 03HRESULTDB 06H DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DATA2 MOV BL,SI AND BL,0FH CMP BL,09H JNC ERROR MOV SI,OFFSET DATA1 MOV DI,OFFSET RESULT MOV CX,0005HA1: MOV AL,SI+04H AND AL,0FH CMP AL,09H JNC ERROR DEC SI MUL BL
20、AAM ADD AL,DI+05H AAA MOV DI+05H,AL DEC DI MOV DI+05H,AH LOOP A1 MOVDX,OFFSET MES1 MOVAH,09H INT21H MOV CX,06H MOV SI,OFFSET RESULTA2: CALLSHOW MOVDL,20H MOVAH,02H INT21H INCSI LOOPA2 MOVAX,4C00H INT21HERROR: MOVDX,OFFSET ERRMES MOVAH,09H INT21H MOVAX,4C00H INT21HSHOWPROCNEAR MOVAL,DS:SI ANDAL,0F0H;
21、取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的數(shù) JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVAL,DS:SI ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H RET ENDPCODE ENDS ENDSTART;A4-4.asm;用減奇法開平方運算STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDD
22、ATASEGMENTMES1DB'The square root of $'MES2DB' is:$'NUMBDW0040HDDATAENDSCODE SEGMENT ASSUME CS: CODE,DS:DDATASTART: MOVAX,DDATA MOVDS,AX MOVDX,OFFSET MES1 MOVAH,09H INT21H MOVSI,OFFSET NUMB MOV AX,SI CALLSHWORD MOVDX,OFFSET MES2 MOVAH,09H INT21H MOVAX,SI MOV CL,00H MOV DX,0001HA1: SUB
23、 AX,DX JB A2 INC CL ADD DX,02H JMP A1A2: MOVBL,CL CALLSHOW MOVAX,4C00H INT21HSHWORDPROCNEAR MOVBL,AH CALLSHOW MOVBL,AL CALLSHOW RET ENDPSHOWPROCNEAR PUSHAX PUSHDX MOVAL,BL ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的數(shù) JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVAL,BL ANDAL,0
24、FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H POPDX POPAX RET ENDPCODE ENDS END START 分支程序設(shè)計實驗實驗?zāi)康?掌握分支程序的設(shè)計方法。 實驗內(nèi)容及說明 程序有順序、循環(huán)、分支和子程序四種結(jié)構(gòu)形式,分支結(jié)構(gòu)的示意圖如圖1所示。本實驗要求通過求無符號字節(jié)序列中的最大值和最小值來反映分支程序的結(jié)構(gòu)形式。 圖1 圖2實驗可以使用BH,BL作為暫存現(xiàn)行的最大值和最小值,且在程序的初始
25、,將BH和BL初始化為首字節(jié)的內(nèi)容,然后進(jìn)入循環(huán)操作。在循環(huán)操作中,依次從字節(jié)序列中逐個取出一個字節(jié)的內(nèi)容與BH,BL進(jìn)行比較,若取出的字節(jié)內(nèi)容比BH的內(nèi)容大或比BL中的內(nèi)容小,則修改之。當(dāng)循環(huán)結(jié)束操作時,將BH,BL分別送屏幕顯示。參考實驗流程如圖2所示。實驗步驟 (1) 運行Tdpit軟件,選擇文件菜單編寫實驗程序;提供8字節(jié)的數(shù)據(jù):0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H。 (2) 使用編譯菜單中的編譯和連接對實驗程序進(jìn)行匯編、連接。 (3) 使用編譯菜單中的運行,運行程序,觀察運行結(jié)果。 (4) 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 參考程序;A5.as
26、m;分支程序設(shè)計實驗STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDDATASEGMENTMES1DB 'The least number is:$'MES2 DB 0AH,0DH,'The largest number is:$'NUMBDB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9HDDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DDATASTART: MOVAX,DDATA MOVDS,AX MOV SI,OFFSET NUMB MOV CX,0008H
27、JCXZ A4 MOV BH,SI MOV BL,BHA1: LODSB;AL=DS:SI,SI=SI+1 CMP AL,BH JBE A2 MOV BH,AL JMP A3A2: CMP AL,BL JAE A3 MOV BL,ALA3: LOOP A1A4: MOVDX,OFFSET MES1;show mes1 MOVAH,09H INT 21H MOVAL,BL;show the least number ANDAL,0F0H;get the highest 4 bits SHRAL,4 CMPAL,0AH JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL;sh
28、ow character MOVAH,02H INT21H MOVAL,BL ANDAL,0FH;get the lowest 4 bits CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVDX,OFFSET MES2;show mes2 MOVAH,09H INT 21H MOVAL,BH;show the largest number ANDAL,0F0H;get the highest 4 bits SHRAL,4 CMPAL,0AH JBC22 ADDAL,07HC22
29、: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVAL,BH ANDAL,0FH;get the lowest 4 bits CMPAL,0AH JBC33 ADD AL,07HC33: ADDAL,30H MOVDL,AL;show character MOVAH,02H INT21H MOVAX,4C00H;go back to dos INT21HCODE ENDS END START 循環(huán)程序設(shè)計實驗 實驗?zāi)康?掌握循環(huán)程序的設(shè)計方法。 實驗內(nèi)容及說明 本實驗要求通過求某數(shù)據(jù)區(qū)內(nèi)負(fù)數(shù)的個數(shù)來表現(xiàn)循環(huán)程序的結(jié)構(gòu)形式。要求實驗程
30、序在數(shù)據(jù)區(qū)中存放一組數(shù)據(jù),為統(tǒng)計負(fù)數(shù)的個數(shù),逐個判斷區(qū)內(nèi)的數(shù)據(jù),然后將所有數(shù)據(jù)中凡是符號位為1的數(shù)據(jù)的個數(shù)累加起來,即得到區(qū)內(nèi)所包含負(fù)數(shù)的個數(shù)。循環(huán)程序的結(jié)構(gòu)示意如圖1所示。 實驗步驟 (1) 運行Tdpit軟件,選擇文件菜單編寫實驗程序。提供10字節(jié)的數(shù)據(jù):12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H。 (2) 使用編譯菜單中的編譯和連接對實驗程序進(jìn)行匯編、連接。 (3) 使用編譯菜單中的運行,運行程序,觀察運行結(jié)果。 (4) 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 ;A6.asm;循環(huán)程序設(shè)計實驗STACK1 SEGMENT STACK DW 256 D
31、UP(?)STACK1 ENDSDDATASEGMENTNUMBDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HMES1DB'The number of negative is:$'DDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DDATASTART: MOVAX,DDATA MOVDS,AX MOVDI,OFFSET NUMB XORBH,BH MOVCX,10DA1: MOV AL,DI TEST AL,80H JE A2 INC BLA2: INC DI LOOP A1 MOVDX,OFFSET MES1
32、;show mes MOVAH,09H INT 21H MOVAL,BL ;show the number of negative ANDAL,0F0H ;get the highest 4 bits SHRAL,4 CMPAL,0AH JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL ;show character MOVAH,02H INT21H MOVAL,BL ANDAL,0FH ;get the lowest 4 bits CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL ;show character MOVAH
33、,02H INT21H MOVAX,4C00H ;go back to dos INT21HCODE ENDS END START綜合程序設(shè)計實驗 實驗?zāi)康?(1) 掌握分支、循環(huán)、子程序調(diào)用的基本程序結(jié)構(gòu)。 (2) 掌握32位寄存器、指令使用的基本方法。 (3) 學(xué)習(xí)綜合程序的設(shè)計、編制及調(diào)試。 實驗內(nèi)容及步驟 1排序?qū)嶒? 本實驗要求編寫一個程序,對存貯區(qū)中的一組雙字進(jìn)行排序,并將排序結(jié)果顯示在屏幕上。在編寫過程中,應(yīng)使用32位寄存器,并且采用基址+變址+偏移的尋址方式。在程序中使用80x86指令系統(tǒng)中有關(guān)32位的指令、尋址方式
34、及32位寄存器時需要在文件頭使用“.386”或“.386p”。 具體實驗步驟如下: (1) 運行Tddebug軟件,選擇Edit菜單編寫實驗程序。 (2) 使用Compile菜單中的Compile和Link對實驗程序進(jìn)行匯編、連接。 (3) 使用Rmrun菜單中的Run,運行程序,觀察運行結(jié)果。 (4) 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 2用32位寄存器、指令、擴(kuò)展尋址方式實現(xiàn)數(shù)碼轉(zhuǎn)換及顯示 本實驗要求將一組ASCII字符轉(zhuǎn)換成十六進(jìn)制數(shù)碼,并在屏幕上顯示出來。要求使用32位寄存器、32位的指令和尋址方式。如將字符串“This is t
35、angdu speaking!”進(jìn)行轉(zhuǎn)換,應(yīng)轉(zhuǎn)換成:54H、68H、69H、73H、20H、69H、73H、20H、74H、61H、6EH、67H、64H、75H、20H、73H、70H、65H、61H、6BH 、69H、6EH、67H、21H。 具體實驗步驟如下。 (1) 運行Tdpit軟件,選擇文件菜單編寫實驗程序。 (2) 使用編譯菜單中的編譯和連接對實驗程序進(jìn)行匯編、連接。 (3) 使用運行菜單中的運行,運行程序,觀察運行結(jié)果。 (4) 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 參考程序:一維字節(jié)數(shù)據(jù)排序STACK1 SEGMENT STACK USE16DB64DUP(?)STACK1
36、 ENDSDATASEGMENTUSE16MES1DB'The array is:$'MES2DB'After sort:$'DATA1DB15H,0D8H,02H,04H,09H,44H,03H,32HCOUNT=8DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART: MOV AX,DATA ;顯示未排序的數(shù)組 MOVDS,AX MOVDX,OFFSET MES1 MOVAH,09H INT 21H CALLKENTER CALLSAHEX CALLKENTER CALLBUBBLE;顯示排序后的數(shù)組 MOVDX,OFF
37、SET MES2 MOVAH,09H INT21H CALLKENTER CALLSAHEX CALLKENTER MOVAX,4C00H INT21HBUBBLEPROC XORSI,SI XORCX,CX MOVSI,OFFSET DATA1 MOVCX,COUNTL1: XORBX,BX XORAX,AXL2: CMPBX,CX JAELB MOVAL,SI+BX+1 MOV DL,SI+BX CMPSI+BX,AL JAELNS XCHGSI+BX,AL MOVSI+BX+1,ALLNS: INCBX JMPL2LB: LOOPL1 RETBUBBLEENDPSAHEXPROCNEAR
38、 XORSI,SI XORCX,CX MOVSI,OFFSET DATA1 MOVCX,COUNTC1: MOVBX,CX DECBX MOVAL,DS:SI+BX ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的數(shù) JBC2 ADDAL,07HC2: ADDAL,30H MOVDL,AL MOVAH,02H INT21H;顯示字符 MOVAL,DS:SI+BX ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07HC3: ADDAL,30H MOVDL,AL;顯示字符 MOVAH,02H INT21H TESTBX,00H JNZC
39、4 MOVDL,20H MOVAH,02H INT21HC4: LOOPC1 RETSAHEXENDPKENTERPROCNEAR MOVDL,0AH MOVAH,02H INT21H MOVDL,0DH MOVAH,02H INT21H RETKENTERENDPCODE ENDS ENDSTART;A8-1.asm;綜合程序設(shè)計實驗排序?qū)嶒?386pSTACK1 SEGMENT STACK USE16DB64DUP(?)STACK1 ENDSDATASEGMENTUSE16MES1DB'The array is:$'MES2DB'After sort:$'D
40、ATA1DD110015H,111101D8H,22110002H,111a0004H,1d110009H,111f044H,11d10203H,32HCOUNT=8DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATASTART: MOV AX,DATA ;顯示未排序的數(shù)組 MOVDS,AX MOVDX,OFFSET MES1 MOVAH,09H INT 21H CALLKENTER CALLSAHEX CALLKENTER CALLBUBBLE;顯示排序后的數(shù)組 MOVDX,OFFSET MES2 MOVAH,09H INT21H CALLKENTER
41、CALLSAHEX CALLKENTER MOVAX,4C00H INT21HBUBBLEPROC XORESI,ESI XORECX,ECX MOVSI,OFFSET DATA1 MOVCX,COUNTL1: XOREBX,EBXL2: CMPEBX,ECX JAELB MOVEAX,ESI+EBX*4+4 CMPESI+EBX*4,EAX JGELNS XCHGESI+EBX*4,EAX MOVESI+EBX*4+4,EAXLNS: INCEBX JMPL2LB: LOOPL1 RETBUBBLEENDPSAHEXPROCNEAR XORESI,ESI XORECX,ECX MOVSI,OFFSET DATA1 MOVCX,COUNT*4C1: MOVEBX,ECX DECEBX MOVAL,DS:ESI+EBX ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的數(shù) JBC
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年住宅租賃租金結(jié)算協(xié)議范本
- 2025年數(shù)據(jù)管理與分析技術(shù)合作框架協(xié)議
- 2025年農(nóng)產(chǎn)品交易市場承包協(xié)議
- 2025年二手車購買合同規(guī)定范本
- 2025年借用物資雙方策劃管理協(xié)議范本
- 2025年個人租賃居間協(xié)議樣本
- 2025年度職員能力提升策略協(xié)議
- 2025年醫(yī)療融資合作框架協(xié)議
- 2025年不銹鋼門定制與安裝合同
- 2025年信貸合同利率調(diào)整協(xié)議
- 電流互感器試驗報告
- 蔣中一動態(tài)最優(yōu)化基礎(chǔ)
- 華中農(nóng)業(yè)大學(xué)全日制專業(yè)學(xué)位研究生實踐單位意見反饋表
- 付款申請英文模板
- 七年級英語閱讀理解10篇(附答案解析)
- 抖音來客本地生活服務(wù)酒旅商家代運營策劃方案
- 鉆芯法樁基檢測報告
- 無線網(wǎng)網(wǎng)絡(luò)安全應(yīng)急預(yù)案
- 國籍狀況聲明書【模板】
- 常用保潔綠化人員勞動合同范本5篇
- 新高考高一英語時文閱讀
評論
0/150
提交評論