




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上微機原理實驗報告班 級:2012級電子科學與技術卓工班姓 名: 黃中一 學 號: 3 序 號: 評閱分數: 實驗一 一、實驗目的1、學會如何建立匯編源文件ASM2、學會調用MASM宏匯編程序對源文件進行匯編,獲得目標程序 OBJ及LST列表文件3、學會調用LINK連接程序匯編后的目標文件OBJ連接成可執行的文件 EXE4、學會使用DEBUG調試程序把可執行文件裝入內存并調試運行,用D命令顯示目標程序,用U命令對可執行文件反匯編,用G命令運行調試。二、實驗設備 裝有MASM 軟件的IBM PC機 三、實驗內容 1、匯編程序對源程序進行編譯,生成擴展名為OBJ的目標文件;
2、連接程序是將目標程序和庫文件進行連接、定位,生成擴展名為EXE的可執行文件;調試程序是對目標文件進行調試,驗證它的正確性。 2、DEBUG程序各種命令的使用方法 功能命令格式使用說明顯示內存單元內容D地址從指定地址開始顯示40H個字節或80H個字節修改內存單元內容E地址先顯示地址和單元內容等待輸入修改的內容檢查和修改寄存器的內容R顯示全部寄存器和標志位及下條指令單元十六進制數碼和反匯編格式反匯編U地址從指定地址開始反匯編16個或32個字節匯編A地址從指定地址直接輸入語句并從指定指定匯編裝入內存跟蹤T地址從指定地址開始逐條跟蹤指令運行G地址無斷點,執行正在調試的指令退出Q退出DEBUG返回DOS
3、3、實驗過程、在edit環境,寫字板,記事本等中輸入源程序。或雙擊屏幕上“未來匯編”快捷方式進入編輯環境輸入源程序。、保存,輸入文件名如A1.asm,并將其與MASM的三個可執行文件放在同一目錄下。、在DOS環境下(可用windows下的命令提示符進入),用MASM生成目標文件A1.OBJ進入DOS環境,將當前目錄設置為存放MASM的路徑.如圖所示:如果MASM 的軟件放在C:TOOLSWJYL 則先要進入到該子目錄下,進入該子目錄的方法為,cd c: 退到c盤的根目錄下,cd tools cd WJYL則如上所述進入該目錄下,然后 輸入MASM ,可見屏幕上有四個提問,按如下格式回答: So
4、urce filename .ASM:a1 Object filename A1.OBJ: Source listing NUL.LST: a1 Cross-reference NUL.CRF:a1 、鍵入DIR/W可見目標文件A1.OBJ和列表文件A1.LST。、在DOS環境下,用連接文件LINK連接程序生成可執行文件A1.EXE輸入LINK,可見屏幕有四個提問,按以下格式回答: Object Modules .OBJ:A1 RUN File A1.EXE: List File NUL.MAP:Libraries .LIB:A1用DIR命令,查看生成的各文件、用TYPE A1.LST 命令觀
5、看列表文件、在DOS環境下,用DEBUG跟蹤程序來安裝運行A1.EXE 程序1) 輸入DEBUG A1.EXE可見有提示符“”2)輸入R 可見CPU內所有寄存器內容和標志位狀態如下:AX=0000 BX=0000 CX=0100 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000 DS=1112 ES=1112 SS=1126 CS=1129 IP=0000 NV UP DI PL NZ NA PO NC 1129:0000 B82211 MOV AX,11223)輸入U,可看到11行指令,再用U命令可看到余下的各指令。4)輸入運行命令G00 28 可見程序執行到
6、INT 21H 句便停下來,屏幕展示此刻各寄存器的內容如下: AX=4C00 BX=0007 CX=0001 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000 DS=1122 ES=1112 SS=1126 CS=1129 IP=0028 NV UP DI PL ZR AC PE CY1129:0028 CD21 INT 215)輸入R IP 可修改指令指針6)輸入T可看到執行第一條指令的結果輸入T0 3 可看到3條指令執行的過程7)輸入Q 退出DEBUG,回到DOS狀態。注:如果masm的過程中出現錯誤,可參看錯誤提示,在相應的行和列去尋找錯誤。可直接在dos
7、環境下鍵入edit進入編輯環境。附:標志寄存器對應的含義NV OF=0OV OF=1UP DF=0DN DF=1DI IF=0EI IF=1PL SF=0NG SF=1NZ ZF=0ZR ZF=1NA AF=0AC AF=1P0 PF=0PE PF=1NC CF=0CY CF=1實驗例程1:DATA SEGMENTARRAY1 DB 2,5,0,3,-4,5,0,0AH,0FHARRAY2 DB 3,5,4,-2,0,8,3,-0AH,20HCOUNT DB $-ARRAY2LEN DB ?SUM DB 20H DUP(0)DATA ENDSSTACK1 SEGMENT PARA STACK
8、'STACK' DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AXMOV BX,-1MOV CX,0MOV CL,COUNT NOZERO: INC BX MOV AL,ARRAY1BX ADD AL, ARRAY2BX MOV SUM BX,AL LOOPNE NOZERO JE ENDOINC BLENDO: MOV LEN,BL MOV AH,4CH INT 21HCODE ENDS END START 實驗例程2:顯示字符串;S
9、AMPLE PROGRAM DISPLAY MESSAGE ;注釋行 STACK SEGMENT PARA STACK STACK ;定義堆棧段 DB 1024 DUP (0) ;在存儲器的某個區域建立一個堆棧區 STACK ENDS DATA SEGMENT ;定義數據段 MESSAGE DB THIS IS A SAMPLE PROGRAM. $ ;在存儲器中存放供顯示的數據DATA ENDS ;數據段結束CODE SEGMENT ;定義代碼段 ASSUME CS:CODE,DS:DATA,SS:STACK ;告訴匯編程序段范圍 START: PROC FAR ;將程序定義為遠過程 PUS
10、H DS MOV AX,0 ;可用XOR AX,AX PUSH AX ;標準序,以便返回DOS操作系統MOV AX,DATA MOV DS,AX ;初始化DS LEA DX, MESSAGE ;MESSAGE 地址偏移量給BX MOV AH,9 INT 21H ;調用 DOS 9號中斷功能顯示字符串。 RET ;返回DOS 操作系統START ENDP ;過程結束CODE ENDS ;代碼段結束 END START ;整個程序匯編結束例3 人機交互:DATA SEGMENTBUF DB 100 ;緩沖區長度 DB ? ;預留用來存放實際長度 DB 100 DUP(?) ;接收來自鍵盤的輸入下信
11、息MESG DB WHAT IS YOUR NAME ? $DATA ENDSCODE SEGMENT ASSUME DS:DATA, CS:CODESTART: MOV AX,DATA MOV DS,AX MOV DX OFFSET MESG MOV AH, 09H ;屏幕顯示提示信息 INT 21H MOV DX OFFSET BUF MOV AH, 0AH ;接收鍵盤輸入 INT 21H MOV AH,4CH INT 21HCODE ENDS END START實驗二 數碼轉碼編程及程序調試一.實驗目的1掌握不同進程數及編碼相互轉換的程序設計方法,加深對數碼轉換的理解;2 進一步熟悉鍵盤
12、使用方法;3. 進一步熟悉調試程序的方法。二. 實驗設備裝有匯編軟件的IBMPC 機一臺三.實驗內容及步驟 計算機輸入設備輸入的信息一般ASCii碼或BCD碼表示的數據或字符,CPU處理信息一般均用二進制數進行計算或其它處理,處理結果輸出的外設有必須一外設的要求變為ASCII碼,BCD碼或七段顯示碼等。因此,在應用軟件中各累數制的轉換和代碼的轉換是必不可少的。計算機于外設間的數碼轉換關系如圖21所示,數碼對應關系如表21所示。一將ASCII碼表示的十進制數轉換為二進制數1.程序流程 十進制數可表示為: 代表十進制1,2,3,···9,0;由式(2)可歸納十進制數轉
13、換為二進制數的方法:從十進制的最高位Dn開始作乘10加次位的操作,將結果再乘10再加下一個次位,如此重復,則可求出二進制的數結果來。程序流程圖如圖22。這里我們規定:被轉換的ASCII碼十進制數存放在3500h3504h單位中。而轉換結果在35103511單位中。2.實驗步驟(1) 輸入程序并檢查無誤。(2) 在35003504h單元存入十進制12的ASCII碼,即e3500,并輸入。(3) g2000,運行程序,并用CTR+C來中斷程序返回監控態。(4) 用d3510查看結果,應為3510 0C 00(5) 反復試幾組數,考查程序的正確性。流程圖如下:代碼如下:地址(H) 助記符 注釋200
14、0 MOV SI,3500 ;源地址2003 MOV DI,3510 ;結果地址2006 MOV BX,000A ;乘數 102009 MOV CX,0004 ;計數200C MOV AH,00 ;AH 清零200E MOV AL,SI ;取被轉換數2010 SUB AL,30 ;ASCII碼變十進制數2012 IMUL BX ;高位(AX)*(BX)送AX2014 ADD AL,SI+01 ;取下一位1017 SUB AL,30 ;ASCII碼減30變十進制數2019 INC SI ;源地址指針+1201A LOOP 2012 ;CX-1,若CX不等于零則繼續201C MOV DI,AX ;
15、若CX不等于零則存結果201E INT 3 運行結果截圖:二.將十進制數的ASCII碼轉換為BCD碼1.程序流程將從鍵盤輸入的五位十進制數的ASCII碼已存在3500起始的內存單元中。把它轉換成BCD碼后,再按位分別存入350A起始的內存單元內。若輸入的不是十進制的ASCII碼,則顯示FF.2.實驗步驟(1) 輸入程序并檢查無誤。(2) 在3500H3504H單元中存入五位十進制數的ASCII碼,即E3500,并輸入31,32,33,34,35。(3) G=2000,運行以上程序。(4) D350A,顯示結果為:0000:350A 01 02 03 04 05 CC(5) 反復試幾組數,考查程
16、序的正確性。流程圖如下:代碼如下:地址(H) 助記符 注釋2000 MOV CX,0005;循環計數器賦初值2003 MOV DI,3500;ASCII碼首址2006 MOV BL,FF; 錯誤標志送BL2008 MOV AL,DI;送ASCII碼至AL200A CMP AL,3A; 比較AL與3AH200C JNB 2014; 不低于3A則轉2014200E SUB AL,30; 低于3A則取ASCII碼的低四位2010 JB 2014; 低于30則轉20142012 MOV BL,AL; 否則AL內容送BL,取代FF2014 MOV AL,BL; 結果或錯誤標志送AL2016 MOV DI
17、+0A,AL2019 INC DI201A LOOP 2006201C INT 3運行結果截圖:3. 將十六位二進制數轉換為ASCII碼表示的十進制數1. 程序及其流程十六位二進制數的值域為065535,最大可轉換為五位十進制數。算法:五位十進制數可表示為:(Di:表示十進制數09。) 因此,將十六位二進制數轉換為五位ASCII碼表示表示的十進制數,就是求D1D4,并將它化為ASCII碼。程序流程圖如圖1-3所示,設源數據存于35003501H單元中,結果數存于35103514H單元中。2.實驗步驟(1) 輸入程序并檢查無誤。(2) 在35003501H單元中存放0C00,運行程序并檢查結果,
18、應看到35103514H單元中的數依次為。(3) 反復試幾組數,并運行程序、觀察結果。流程圖如下:代碼如下:地址(H) 助記符 注釋2000 MOV DX,3500;取二進制數2004 MOV SI,3515; 目標首址在35102007 DEC SI2008 MOV AX,DX200A MOV DX,0000200D MOV CX,000A 2010 DIV CX; ; 除102012 XCHG AX,DX2014 ADD AL,302016 MOV SI,AL2018 CMP DX,0000201B JNE 2007201D CMP SI,3510 ; 填余下高位為02021 JZ 202
19、A; 2023 DEC SI2024 MOV AL,302026 MOV SI,AL2028 JMP 201D202A INT 3運行結果截圖:四.十六進制數轉換為ASCII碼1.程序及其流程經過CPU處理后的十六進制數存放在起始地址為3500H的內存單元中,把它們轉換成ASCII碼之后,再分別存入起始地址為350AH的內存單元中。 從表2-1中可知,十六進制數加30H即可得到0H9H的ASCII碼,而要得到AHFH的ASCII碼,則需再加7H。程序流程圖及參考程序如圖1-4所示。2.實驗步驟(1) 輸入程序并檢查無誤。(2) 在35003501H單元中存入四位十六進制數203B,即E3500
20、,并輸入3B,20。(3) G=2000,運行以上程序(4) D350A,顯示結果為:0000:350A 42 33 30 32 CC輸入數據與結果ASCII碼對應順序相反。(5) 反復試幾組數。考查程序的正確性。流程圖如下:代碼如下:地址(H) 助記符 注釋2000 MOV CX,00042003 MOV DI,35002006 MOV DX,DI2008 MOV AX,DX200A AND AX,000F ;取低四位值200D CMP AL,0A; ; 判是否“0”-“9”200F JB 2013 ; 是“0”-“9”轉20132011 ADD AL,07; 是“A”-“F”,加72013
21、 ADD AL,30; 轉換為ASCII碼2015 MOV DI+0A,AL2018 INC DI2019 PUSH CX ;保護循環計數器內容201A MOV CL,04; 移位次數送CL201C SHR DX,CL201E POP CX201F LOOP 20082021 INT 3運行結果截圖:五.BCD碼轉換為二進制數 1.程序及其流程設四個二位十進制數的BCD碼存放在起始地址為3500H,的單元中,轉換出的二進制數碼存入起始地址為3510H的內存單元中,程序流程圖及參考程序如圖1-5所示。2.實驗步驟(1) 輸入程序并檢查無誤。(2) 在35003507單元中存入四個十進制數(12,
22、34,56,78)的BCD碼,即E3500 輸入01,02,03,04,05,06,07,08。(3) G=2000,運行以上程序。(4) D3510,顯示結果為3510 0C 00 22 00 38 00 4E 00(5) 反復試幾組數,考查程序的正確性。流程圖如下:代碼如下:地址(H) 助記符 注釋2000 MOV CX,00042003 MOV DI,35002006 MOV AL,DI2008 ADD AL,AL ;乘2200A MOV BL,AL200C ADD AL,AL ;乘2200E ADD AL,AL ;乘22010 ADD AL,BL ;乘102012 INC DI2013
23、 MOV AH,002015 ADD AL,DI; BCD碼十位與個位加2017 MOV DI+0F,AX;存結果 圖1-5201A INC DI201B LOOP 2006201D INT 3運行結果截圖:實驗三 分支和循環程序設計實驗一、分支程序設計實驗1.實驗目的1.掌握分支程序的結構。2掌握分支程序的設計、調試方法。2.實驗設備微機一臺3.內容設計一數據塊間的搬移程序設計思想:程序要求把內存中一數據區(稱為源數據塊)傳送到另一存貯區(稱為目的數據塊)。源數據塊和目的數據塊在存貯中可能有三種情況。對于兩個數據塊分離的情況,數據的傳送從數據塊的首址開始,或者從數據塊的末址開始均可,但對于有
24、部分重疊的情況,則要加以分析,否則重疊部分會因“搬移”而遭破壞。可以得出以下結論:當源數據塊首址目的塊首址時,從數據塊首址開始傳送數據。當源數據塊首址目的塊首址時,從數據塊末地址開始傳送數據。流程圖如下:代碼如下:DATA SEGMENTM DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,10H,11H,12H,13H,14H,15H,16H,24 DUP(?)N = M+10Z = N+17CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV BX,OFFSET ZSECOND:MOV
25、 AX,OFFSET M MOV DX,OFFSET N ADD AX,15 CMP AX,BX JC FIRST MOV CX,0016 ADD DX,15 MOV SI,AX MOV DI,DXBEGIN2:MOV BL,SI MOV DI,BL DEC SI DEC DI LOOP BEGIN2 JMP COMPLETEFIRST:MOV CX,0016 SUB AX,15 MOV SI,AX MOV DI,BXBEGIN1:MOV DL,SI MOV DI,DL INC SI INC DI LOOP BEGIN1 MOV BX,0000 JMP SECONDCOMPLETE:MOV A
26、H,4CH INT 21HCODE ENDSEND START運行結果截圖:在源數據塊中存入6個數,分別使SI大于、等于、小于DI均發覺數據正確傳送。程序正確。二、循環程序設計實驗1.實驗目的(1)加深對循環結構的理解。(2)掌握循環結構程序設計的方法。(3)熟練掌握調試循環程序的方法。2.實驗設備TDS-MD微機一臺3.內容(1)編制程序使S=1+2*3+3*4+4*5+N(N+1),直到N(N+1)項大于200為止。流程圖如下: NY開始1DX,2BLBLALBL+1AL*BLAXDX+AXDX結束AX>200 代碼如下:STACK1 SEGMENT STACKDW 64 DUP(?
27、)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART:MOV DX,0001HMOV BL,02HA1:MOV AL,BLINC BLMUL BL ADD DX,AXCMP AX,00C8HJNA A1A2:INT 03HCODE ENDSEND START 運行結果截圖:運行結果為45FH,與實際相符,程序正確。(2)求某個數據區內負數的個數設數據區的第一單元存放區內數據的個數,從第二單元開始存放數據,在區內最后一個單元存放結果。為統計數據區內負數的個數,需要逐個判斷區內的每一個數據,然后將所有數據中凡是符號位為1的數據的個數累加起來,即得區內所包含負數的個
28、數。 流程圖如下: 代碼如下:STACK1 SEGMENT STACKDW 64 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART:MOV DI,3000H MOV CL,DI XOR CH,CH MOV BL,CH INC DI A1: MOV AL,DITEST AL,80H JE A2INC BL A2: INC DILOOP A1MOV DI,BL A3: JMP A3CODE ENDSEND START運行結果截圖:輸入數據個數為6輸入12、88、82、90、22、33得結果03結果與實際相符,程序正確。實驗四子程序設計一. 實驗目的、
29、學習子程序的定義和調用方法。、掌握子程序、子程序嵌套的結構。專心-專注-專業、掌握子程序的程序設計、編制及調試方法。二. 實驗內容程序采用菜單式選擇,可接收用戶輸入的命令(15),各命令如下:按1鍵完成字符串小寫字母變大寫字母用戶輸入一由英文大小寫字母或數字09組成的字符串(以回車結束),程序逐個檢查字符串中各字符,將原串中小寫字母變成大寫字母,其它字符不變,并在屏幕上顯示。用戶按任一鍵,重做,按ESC鍵,返回主菜單。按2鍵完成找最大值(二選一)、接收用戶輸入的可顯示字符串(以回車結束),程序將其中ASCII碼值最大的字符顯示出來。、接收用戶輸入若干無符號8位數(以空格或逗號為分隔符,以回車結
30、束),程序將其中最大的數顯示出來。用戶按任一鍵,重做,按ESC鍵,返回主菜單。按3鍵完成排序(二選一)、接收用戶輸入的可顯示字符串,以回車結束。程序按ASCII碼值大小由大到小排序并輸出顯示。、接收用戶輸入若干個有符號8位數(以空格逗號為分隔符,以回車結束)。程序將其中最大的數顯示出來。用戶按任一鍵,重做,按ESC鍵,返回主菜單。按4鍵顯示時間首先提示用戶對時,即用戶輸入時,分,秒(以空格或冒號分隔,以回車結束),然后,在屏幕上不斷顯示時間,格式為:××(時):××(分):××(秒),最好定點顯示。用戶按任一鍵,重新對時,按ESC鍵,
31、返回主菜單。按5鍵,結束程序運行,返回系統提示符。流程圖如下:主程序流程 子程序一流程子程序二流程子程序三流程 子程序四流程代碼如下:DATA SEGMENT ORG 9999HMENU DB 0DH,0AH,'Programed by Xue Chengdai Class four Grade 11',0DH,0AH, ;菜單 DB 'Please input 15 to choose service',0DH,0AH, DB '1: Input an string.Then convert the small letter to big letter
32、.' ,0DH,0AH, DB '2: Find the character whose ASCII code is biggest',0DH,0AH, DB '3: Sort the character by ASCII code by decreasing order.' ,0DH,0AH, DB '4: Display the ticking time',0DH,0AH, DB '5: End the program$'MEG0 DB ' Please choose function$' ;提示信息M
33、EG0MEG8MEG1 DB 'You have choose the function 1.',0DH,0AH,'Please input the character string you want to convert:$'MEG2 DB 'You have choose the function 2.',0DH,0AH,'Please input the character string:$'MEG3 DB 'You have choose the function 3.',0DH,0AH,'Plea
34、se input the character string you want to sort$'MEG4 DB 'You have choose the function 4.',0DH,0AH,'Please input the time you want to set in format like:xx:xx:xx$'MEG5 DB 'The program is end$'MEG6 DB 'Sorry.you have chosen a undefined function .Please input a correct f
35、unction number$'MEG7 DB 'Fail to set time$'MEG8 DB 'Press any key to do again or press the ESC key to return to the main menu$ 'FLAG DB -1 ;冒泡排序中使用的標志DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAstart:MAIN PROC NEAR ;主程序 MOV AX,DATA MOV DS,AXCIN: LEA DX,MENU ;輸出提示信息 MOV AH,09H INT
36、 21H CALL ENT ;輸出回車換行 LEA DX,MEG0 MOV AH,09H INT 21H CALL ENT MOV AH,01H INT 21H CMP AL,30H ;判斷功能號 JLE EOR CMP AL,31H JE F1 CMP AL,32H JE F2 CMP AL,33H JE F3 CMP AL,34H JE F4 CMP AL,35H JE F5EOR: CALL ENTLEA DX,MEG6 ;輸出出錯信息 MOV AH,09H INT 21H JMP CINF1: CALL ENT ;功能1 LEA DX,MEG1 MOV AH,09H INT 21H C
37、ALL ENT CALL FUN1 ;調用子程序1 MOV AH,01H INT 21H CMP AL,1BH JNE F1 JMP CINF2: CALL ENT ;功能2 LEA DX,MEG2 MOV AH,09H INT 21H CALL ENT CALL FUN2 ;調用子程序2 MOV AH,01H INT 21H CMP AL,1BH JNE F2 JMP CINF3: CALL ENT ;功能3 LEA DX,MEG3 MOV AH,09H INT 21H CALL ENT CALL FUN3 ;調用子程序3 MOV AH,01H INT 21H CMP AL,1BH JNE
38、F3 JMP CINF4: CALL ENT ;功能4 LEA DX,MEG4 MOV AH,09H INT 21H CALL ENT CALL FUN4 ;調用子程序4 MOV AH,01H INT 21H CMP AL,1BH JNE F4 JMP CINF5: MOV AH,4CH ;功能5,終止程序 INT 21HFUN1 PROC NEAR ;子程序1 PUSH AX PUSH CX PUSH DX PUSH SI MOV AH,0AH ;字符串輸入 INT 21H CALL ENT MOV SI,DX INC SI MOV CL,SI ;設定循環次數 MOV CH,0JIK: IN
39、C SI MOV AL,SI CMP AL,0DH ;判斷字符ASCII碼 JE KL CMP AL,61H JB JK CMP AL,7AH JA JK SUB AL,20H ;小寫轉大寫JK: MOV DL,AL ;輸出字符 MOV AH,02H INT 21H LOOP JIK CALL ENT LEA DX,MEG8 MOV AH,09H INT 21HKL: POP SI POP DX POP CX POP AX RETFUN1 ENDPFUN2 PROC NEAR ;子程序2 PUSH AX PUSH CX PUSH DX PUSH SI MOV AH,0AH INT 21H CA
40、LL ENT MOV SI,DX INC SI MOV CL,SI MOV CH,0 INC SI MOV AL,SIFH: INC SI ;循環比較 CMP AL,SI JA FG MOV AL,SIFG: LOOP FH MOV DL,AL MOV AH,02H INT 21H CALL ENT LEA DX,MEG8 MOV AH,09H INT 21H POP SI POP DX POP CX POP AX RETFUN2 ENDPFUN3 PROC NEAR ;子程序3 PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV AH,0A
41、H INT 21H CALL ENT MOV SI,DX INC SI MOV BL,SI MOV BH,0 INC SI MOV DI,SILP1: CMP FLAG,0 ;根據標志判斷 JE LP3 DEC BX ;檢查循環次數 CMP BX,0 JE LP3 MOV CX,BX MOV SI,DI MOV FLAG,0LP2: MOV AL,SI ;前后比較 CMP AL,SI+1 JLE NEXT XCHG AL,SI+1 MOV SI,AL MOV FLAG,0FFHNEXT:INC SI LOOP LP2 ;內循環繼續 JMP LP1 ;退出內循環LP3: DEC DI ;重新設定
42、循環次數 MOV CL,DI MOV CH,0LP4: INC DI ;循環輸出字符 MOV DL,DI MOV AH,02H INT 21H LOOP LP4 CALL ENT LEA DX,MEG8 MOV AH,09H INT 21H POP DI POP SI POP DX POP CX POP BX POP AX RETFUN3 ENDPFUN4 PROC NEAR ;子程序4 PUSH AX PUSH BX PUSH CX PUSH DX CALL CROT ;調用子程序CROT MOV CH,AL ;裝入入口參數 MOV AH,01H INT 21H CALL CROT MOV CL,AL MOV AH,01H INT 21H CALL CROT MOV DH,AL MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股權投資股權信息披露與投資咨詢協議
- 環境保護控制補充協議
- 直播平臺虛擬偶像形象版權授權合同
- 地鐵盾構區間隧道施工環境保護與風險防范合同
- 校招面試題目及答案
- 校招流程及注意事項面試題目及答案
- 鋁錠鑄造過程中打渣機器人可靠控制系統研發
- 基于英語學習活動觀的高中英語閱讀教學行動研究
- 武漢市中心城區健身俱樂部的區域分布、運營現狀、困境與路徑研究
- 鋰電池企業供應鏈整合對企業績效的影響研究-以億緯鋰能為例
- 墩柱及系梁專項施工方案
- 武漢理工大學建筑信息模型(BIM)期末復習題
- 木模板施工安全技術規范
- GB 5009.5-2025食品安全國家標準食品中蛋白質的測定
- 建筑施工行業安全生產責任保險
- DB23T 3711-2024市縣級礦產資源總體規劃編制技術規程
- 透水磚項目施工合同
- 2025年護士執業資格真題答案解析
- 團課考試試題及答案
- 第三單元 傳承中華 傳統文化【大單元教學之整體規劃】【知識精研精講】七年級道德與法治下冊大單元教學(統編版2024)
- 電氣工程及其自動化畢業設計 基于PLC的噴涂機器人控制系統的設計
評論
0/150
提交評論