![匯編考試題目及代碼_第1頁](http://file4.renrendoc.com/view/75c86c3351310a6d543941240edfdd69/75c86c3351310a6d543941240edfdd691.gif)
![匯編考試題目及代碼_第2頁](http://file4.renrendoc.com/view/75c86c3351310a6d543941240edfdd69/75c86c3351310a6d543941240edfdd692.gif)
![匯編考試題目及代碼_第3頁](http://file4.renrendoc.com/view/75c86c3351310a6d543941240edfdd69/75c86c3351310a6d543941240edfdd693.gif)
![匯編考試題目及代碼_第4頁](http://file4.renrendoc.com/view/75c86c3351310a6d543941240edfdd69/75c86c3351310a6d543941240edfdd694.gif)
![匯編考試題目及代碼_第5頁](http://file4.renrendoc.com/view/75c86c3351310a6d543941240edfdd69/75c86c3351310a6d543941240edfdd695.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1.請任意輸入一個字符串,將該串倒序后在屏幕上顯示。2.請任意輸入一個字符串,統(tǒng)計其中空格和A的個數(shù),并將結(jié)果顯示在屏幕上。3.請任意輸入一個字符串,將其中的空格全部刪除,并將結(jié)果顯示在屏幕上。4.請任意輸入一個字符串,將其中A換成B,并將結(jié)果顯示在屏幕上。5.請任意輸入一個字符串,將其中A換成CC,并將結(jié)果顯示在屏幕上。6.請任意輸入一個字符串,將其中大寫字母換成小寫字母,并將結(jié)果顯示在屏幕上。7.請任意輸入一個字符串,將其中的英文字母全部刪除,并將結(jié)果顯示在屏幕上。8.現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫
2、程序從鍵盤輸入4個字符的字符串,若存在將其修改為disk, 并在顯示器上顯示。9.現(xiàn)有一組字符串為ram,yes,red,the,get,for,and,key,not,may,請編寫程序?qū)⑺麄儼碅SCII大小排序,并在顯示器上顯示。10.現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程序從鍵盤輸入4個字符的字符串,若存在將其刪除, 并在顯示器上顯示。11.現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text,請編寫程序?qū)⑸鲜鲎址判颍ㄉ颍┎⒉迦雂isk
3、使其人仍然有序, 并在顯示器上顯示。12.鍵盤輸入一個十進制數(shù),以十六進制的形式輸出。13.鍵盤輸入一個十進制數(shù),以二進制的形式輸出。14.鍵盤輸入一個二進制數(shù),以十六進制的形式輸出。15.鍵盤輸入一個二進制數(shù),以十進制的形式輸出。16.鍵盤輸入一個十六進制數(shù),以十進制的形式輸出。17.鍵盤輸入一個十六進制數(shù),以二進制的形式輸出。18.將一組有符號數(shù)中的負數(shù)求和,并統(tǒng)計負數(shù)的個數(shù),并在屏幕上以十進制的形式顯示結(jié)果。38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H,0F5H19.鍵盤輸入兩組數(shù)743216、527864,按BCD碼求和,并將結(jié)果顯示在屏幕上。20.鍵盤
4、輸入下列兩組十進制數(shù),求其和,并將結(jié)果顯示在屏幕上 35789418 4653142521.鍵盤輸入一串二進制數(shù)1ah ,7ch,0bah,3ah,45h,63h求其和,并將結(jié)果顯示在屏幕上。22.編寫程序,將十個字的有符號數(shù)中最大、最小值求出,并在顯示器上輸出。125ah,4357h,0f50h,0b43h,4ac4h,7454h,8b15h,0a2a4h,0f3ch,00f6h23.鍵盤輸入10個字節(jié)數(shù)(無符號數(shù)),求出最大、最小值,并在顯示器上輸出。24.設(shè)有4個學生參加5門考試,請計算每個學生的平均成績和每門課的平均分成績,并在顯示器上顯示,輸出格式如下: Chg1 chg2 chg3
5、 chg4 chg5 meamS1 78 85 55 100 97 S2 67 96 43 79 84 S3 92 55 76 92 65 S4 43 95 82 89 75 Aver 不計小數(shù)。25.將兩個磁盤文件合并成一個新的文件。26.將一磁盤文件E:ASSFILE.ASM讀入內(nèi)存2000:0000h中,并將文件以反序形式(頭尾對應(yīng)字符互換) 仍以相同路徑存入磁盤中。27.在多模塊設(shè)計中,主模塊中調(diào)用內(nèi)部模塊buf1,buf2,buf3,buf4。主模塊根據(jù)鍵盤輸入的指令(如:a,b,c,d)調(diào)用上述對應(yīng)的子程序,每個子程序的任務(wù)是顯示其入口地址。調(diào)用后繼續(xù)等待調(diào)用,若輸入ESC鍵(AS
6、CII碼為1BH)則結(jié)束程序的執(zhí)行。請編寫完成該任務(wù)的程序。28.現(xiàn)有一控制程序共5個工序,要求輸入0-4的序號,分別執(zhí)行各工序的子程序,每個子程序的任務(wù)是顯示其入口地址。調(diào)用后繼續(xù)等待調(diào)用,按回車則結(jié)束程序的執(zhí)行。29.現(xiàn)有一組參量按16位編碼,各字段的長度如下:BIT1=6, BIT2=4, BIT3=3, BIT4=3, BIT1位于高位, BIT4位于低位。設(shè)BIT1=52, BIT2=13, BIT3=5, BIT4=3請用程序編碼將這些字段編碼組合成一個字,按二進制的形式在屏幕上輸出。30.鍵盤輸入十個數(shù),分別同機0到9,10到99,100以上的數(shù)的個數(shù),并顯示結(jié)果。1DATA S
7、EGMENTBUF DB 0FFH DB ? DB 0FFH DUP (?) ANS DB 0DH,0AH,0FDH DUP (?) DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21H LEA SI,BUF2 MOV AL,BUF1 XOR AH,AH ADD SI,AX DEC SI LEA DI,ANS2 XOR CH,CH MOV CL,BUF1AGAIN:MOV AL,SI MOV DI,AL DEC SI INC DILOOP AGAIN MO
8、V BYTE PTRDI,$ LEA DX,ANS MOV AH,09H INT 21H MOV AH,4CHINT 21HCODE ENDSEND START2DATA SEGMENTBUF DB 0FFH DB ? DB 0FFH DUP (?) STROUT DB 0DH,0AH,A =000 DB 0DH,0AH,SPACE=000,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2MOV CL,BUF1XOR CH,CH
9、AGAIN: CMP BYTE PTRSI,AJNE NOTACMP STROUT10,9JE ATENINC STROUT10 JMP NEXTATEN: CMP STROUT9,9JE AHUN MOV STROUT10,0INC STROUT9 JMP NEXTAHUN: MOV STROUT10,0 MOV STROUT9,0INC STROUT8 JMP NEXTNOTA: CMP BYTE PTRSI, JNE NOTSPACECMP STROUT21,9JE SPACETENINC STROUT21 JMP NEXTSPACETEN: CMP STROUT20,9JE SPACE
10、HUN MOV STROUT21,0INC STROUT20 JMP NEXTSPACEHUN: MOV STROUT21,0 MOV STROUT20,0INC STROUT19NOTSPACE:NEXT: INC SILOOP AGAINLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3DATA SEGMENTBUF DB 0FFH DB ? DB 0FFH DUP (?)STROUT DB 0DH,0AH,0FDH DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:D
11、ATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21H LEA SI,BUF2LEA DI,STROUT2MOV CL,BUF1XOR CH,CHAGAIN:CMP BYTE PTRSI, JE SPACEMOV AL,SIMOV DI,ALINC DISPACE:INC SILOOP AGAIN MOV BYTE PTRDI,$LEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START4DATA SEGMENTBUF DB 0FFH DB ? DB 0FFH DU
12、P (?) STROUT DB 0DH,0AH,0FDH DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2LEA DI,STROUT2MOV CL,BUF1XOR CH,CHAGAIN:CMP BYTE PTRSI,AJNE NOTAMOV BYTE PTRDI,B JMP NEXTNOTA:MOV AL,SIMOV DI,ALNEXT:INC SIINC DILOOP AGAINMOV BYTE PTRDI,$LE
13、A DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START5DATA SEGMENTBUF DB 0FFH DB ? DB 0FFH DUP (?)STROUT DB 0DH,0AH,0FDH DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2LEA DI,STROUT2MOV CL,BUF1XOR CH,CHAGAIN:CMP BYTE PTRSI,
14、AJNZ NOTA MOV WORD PTRDI,CC ADD DI,2JMP NEXTNOTA:MOV AL,SI MOV DI,ALINC DINEXT:INC SILOOP AGAINMOV BYTE PTRDI,$LEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START6DATA SEGMENTBUF DB 0FFH DB ? DB 0FFH DUP (?)STROUT DB 0DH,0AH,0FDH DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:
15、MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2LEA DI,STROUT2MOV CL,BUF1XOR CH,CHAGAIN:CMP BYTE PTRSI,AJB NOTUPCMP BYTE PTRSI,Z JA NOTUPMOV AL,SIADD AL,20HMOV DI,ALJMP NEXTNOTUP:MOV AL,SIMOV DI,ALNEXT:INC SIINC DILOOP AGAIN MOV BYTE PTRDI,$LEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCO
16、DE ENDSEND START7DATA SEGMENTBUF DB 0FFH DB ? DB 0FFH DUP (?)STROUT DB 0DH,0AH,0FDH DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2LEA DI,STROUT2MOV CL,BUF1XOR CH,CHAGAIN:CMP BYTE PTRSI,AJB NOTUPCMP BYTE PTRSI,ZJA NOTUPINC SIJMP NEXT
17、NOTUP:CMP BYTE PTRSI,aJB NOTALPHACMP BYTE PTRSI,zJA NOTALPHAINC SIJMP NEXTNOTALPHA:MOV AL,SIMOV DI,ALINC SIINC DINEXT:LOOP AGAINMOV BYTE PTRDI,$LEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START8DATA SEGMENTBUF DB 05H DB ? DB 05H DUP (?)STROUT DB 0DH,0AH,data DB 0DH,0AH,name DB 0DH,0A
18、H,time DB 0DH,0AH,file DB 0DH,0AH,code DB 0DH,0AH,path DB 0DH,0AH,user DB 0DH,0AH,exit DB 0DH,0AH,quit DB 0DH,0AH,text,$ REPLACE DB disk DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUFMOV AH,0AHINT 21HLEA BX,STROUT2LEA SI,BUF2LEA DI,STROUT2MOV CX,10AG
19、AIN:CLDPUSH CXMOV CX,4REPZ CMPSBPOP CXJNZ NEXTLEA SI,REPLACEMOV DI,BXMOV DX,4SUBAGAIN:MOV AL,SIMOV DI,ALINC SIINC DIDEC DXJNZ SUBAGAINJMP EXITNEXT:LEA SI,BUF2ADD BX,6MOV DI,BXLOOP AGAINEXIT:LEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START9DATA SEGMENTBUF DB 0DH,0AH,ram DB 0DH,0AH,ye
20、s DB 0DH,0AH,red DB 0DH,0AH,the DB 0DH,0AH,get DB 0DH,0AH,for DB 0DH,0AH,and DB 0DH,0AH,key DB 0DH,0AH,not DB 0DH,0AH,may,$TMP DB ?DATA ENDSSTACK SEGMENT STACKDB 0FFH DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATAMAIN PROC NEARSTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA BX,BUF2MOV DH,9AGAIN0:
21、MOV DI,BXMOV SI,DIADD SI,5MOV DL,DHAGAIN1:PUSH SIPUSH DIMOV CX,3CLDREPZ CMPSBPOP DIPOP SIJA NOTABOVEMOV DI,SIJMP NEXT1NOTABOVE:NEXT1: ADD SI,5DEC DLJNZ AGAIN1 NEXT0:CALL XCHGS3ADD BX,5DEC DHJNZ AGAIN0LEA DX,BUFMOV AH,09HINT 21HMOV AH,4CHINT 21HMAIN ENDPXCHGS3 PROC NEARPUSH SIPUSH DIPUSH CXMOV SI,DIM
22、OV DI,BXMOV CX,3AGAINXCHGS3:MOV AL,SIMOV AH,DIMOV SI,AHMOV DI,ALINC SIINC DILOOP AGAINXCHGS3POP CXPOP SIPOP DIRETXCHGS3 ENDPCODE ENDSEND START10DATA SEGMENTBUF DB 05H DB ? DB 05H DUP (?)STROUT DB 0DH,0AH,data,$ DB 0DH,0AH,name,$ DB 0DH,0AH,time,$ DB 0DH,0AH,file,$ DB 0DH,0AH,code,$ DB 0DH,0AH,path,$
23、 DB 0DH,0AH,user,$ DB 0DH,0AH,exit,$ DB 0DH,0AH,quit,$ DB 0DH,0AH,test,$DATA ENDSSTACK SEGMENT STACK DB 100 DUP (?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV ES,AX MOV AX,STACK MOV SS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2LEA DI,STROUT2MOV DL,10AGAI
24、N0:PUSH SIPUSH DIMOV CX,4CLDREPZ CMPSB POP DI POP SIJE DEL ADD DI,7DEC DLJNZ AGAIN0JMP EXITDEL:CLD MOV AL,20HMOV CX,4REP STOSBEXIT: LEA DX,STROUTMOV CX,10AGAIN1: PUSH DX MOV BX,DX CMP BYTE PTRBX+2, JE NEXT1MOV AH,09HINT 21HNEXT1:POP DX ADD DX,7LOOP AGAIN1MOV AH,4CHINT 21HCODE ENDSEND START11DATA SEG
25、MENT STRINSERT DB diskBUF DB 0DH,0AH,data DB 0DH,0AH,name DB 0DH,0AH,time DB 0DH,0AH,file DB 0DH,0AH,code DB 0DH,0AH,path DB 0DH,0AH,user DB 0DH,0AH,exit DB 0DH,0AH,quit DB 0DH,0AH,test DB 0DH,0AH, DB 0DH,0AH,$DATA ENDSSTACK SEGMENT STACKDW 0FFH DUP (?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES
26、:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA BX,BUF2MOV DL,9AGAIN0:MOV DI,BXMOV SI,DIADD SI,6MOV DH,DLAGAIN1:PUSH SIPUSH DICLDMOV CX,4REPZ CMPSBPOP DIPOP SIJA NEXT1MOV DI,SINEXT1:ADD SI,6DEC DH JNZ AGAIN1NEXT0:CALL XCHGS4ADD BX,6DEC DL JNZ AGAIN0 LEA DX,BUFMOV AH,09HINT 21H LEA BX,BUF2+6*10
27、LEA SI,STRINSERT LEA DI,BUF2 MOV DL,10AGAIN2: PUSH SI PUSH DI CLD MOV CX,4 REP CMPSB POP DI POP SI JB SHIFTRIGHTNEXT2: ADD DI,6 DEC DL JNZ AGAIN2SHIFTRIGHT: PUSH DI MOV AX,BX SUB AX,DI ADD BX,3 MOV SI,BX SUB SI,6 MOV DI,BX STD MOV CX,AX REP MOVSB INSERT: POP DI LEA SI,STRINSERT CLD MOV CX,4 REP MOVS
28、B LEA DX,BUF MOV AH,09H INT 21HMOV AH,4CHINT 21HXCHGS4 PROC NEARPUSH SIPUSH DIPUSH CX MOV SI,BXCLDMOV CX,4AGAINXCHGS4:MOV AL,SIMOV AH,DIMOV SI,AHMOV DI,ALINC SIINC DILOOP AGAINXCHGS4POP CXPOP DIPOP SIRETXCHGS4 ENDPCODE ENDSEND START12DATA SEGMENTBUF DB 50H DB 51H DUP(?) STROUT DB 0DH,0AH,0FDH DUP(?)
29、TMP DB 0FCH DUP(0)DATA ENDSSTACK_SEG SEGMENT STACKDW 0FFH DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK_SEGMAIN PROC NEARSTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2MOV CL,BUF1XOR CH,CHAGAIN0: SUB BYTE PTRSI,30H NEXT0:INC SI LOOP AGAIN0 LEA BX,T
30、MPMOV CX,0AGAIN1:CALL DECDECCMP AX,0JNE EXITCALL HEXINCJMP AGAIN1EXIT: CALL CONVLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HMAIN ENDPDECDEC PROC NEARPUSH CX PUSH BX LEA SI,BUF2 MOV BX,SI MOV AL,BUF1 XOR AH,AH ADD SI,AXDEC SI MOV DI,SIBORROW:CMP BYTE PTRSI,0JNE DECINGDEC SI CMP SI,BX JB HALTJMP BO
31、RROWDECING:DEC BYTE PTRSIINC SIAGAINDEC: CMP SI,DIJA EXITDECDECMOV BYTE PTRSI,09HINC SIJMP AGAINDECHALT:MOV AX,1JMP DECRETEXITDECDEC:MOV AX,0DECRET: POP BXPOP CXRETDECDEC ENDPHEXINC PROC NEARPUSH CXLEA SI,TMPCARRY:CMP BYTE PTRSI,FJNE INCINGINC SIJMP CARRYINCING:CMP BYTE PTRSI,9JNZ NOTADDTENMOV BYTE
32、PTRSI,AJMP BREAK0NOTADDTEN:INC BYTE PTRSIBREAK0:CMP SI,BXJB NOTAMOV BX,SINOTA:MOV AL,0CLDLEA DI,TMPMOV CX,SI SUB CX,DI REP STOSBEXITINC:POP CXRETHEXINC ENDPCONV PROC NEAR MOV SI,BX LEA DI,TMP SUB BX,DI INC BX MOV CX,BX LEA DI,STROUT2AGAINCONV: MOV AL,SI MOV DI,AL DEC SI INC DI LOOP AGAINCONV MOV BYT
33、E PTRDI,$ RET CONV ENDPCODE ENDSEND START13DATA SEGMENTBUF DB 50H DB 51H DUP(?) STROUT DB 0DH,0AH,0FDH DUP(?)TMP DB 0FCH DUP(0)DATA ENDSSTACK_SEG SEGMENT STACKDW 0FFH DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK_SEGMAIN PROC NEARSTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BU
34、FMOV AH,0AHINT 21HLEA SI,BUF2MOV CL,BUF1XOR CH,CHAGAIN0: SUB BYTE PTRSI,30H NEXT0:INC SI LOOP AGAIN0 LEA BX,TMPMOV CX,0AGAIN1:CALL DECDECCMP AX,0JNE EXIT CALL BININCJMP AGAIN1EXIT: CALL CONVLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HMAIN ENDPDECDEC PROC NEARPUSH CX PUSH BX LEA SI,BUF2 MOV BX,SI
35、MOV AL,BUF1 XOR AH,AH ADD SI,AXDEC SI MOV DI,SIBORROW:CMP BYTE PTRSI,0JNE DECINGDEC SI CMP SI,BX JB HALTJMP BORROWDECING:DEC BYTE PTRSIINC SIAGAINDEC: CMP SI,DIJA EXITDECDECMOV BYTE PTRSI,09HINC SIJMP AGAINDECHALT:MOV AX,1JMP DECRETEXITDECDEC:MOV AX,0DECRET: POP BXPOP CXRETDECDEC ENDPBININC PROC NEA
36、RPUSH CXLEA SI,TMPCARRY:CMP BYTE PTRSI,1JNE INCINGINC SIJMP CARRYINCING:INC BYTE PTRSICMP SI,BXJB NOTAMOV BX,SINOTA:MOV AL,0CLDLEA DI,TMPMOV CX,SI SUB CX,DI REP STOSBEXITINC:POP CXRETBININC ENDPCONV PROC NEAR MOV SI,BX LEA DI,TMP SUB BX,DI INC BX MOV CX,BX LEA DI,STROUT2AGAINCONV: MOV AL,SI MOV DI,A
37、L DEC SI INC DI LOOP AGAINCONV MOV BYTE PTRDI,$ RET CONV ENDPCODE ENDSEND START14DATA SEGMENTBUF DB 50H DB 51H DUP(?) STROUT DB 0DH,0AH,0FDH DUP(?)TMP DB 0FCH DUP(0)DATA ENDSSTACK_SEG SEGMENT STACKDW 0FFH DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK_SEGMAIN PROC NEARSTART:
38、MOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2MOV CL,BUF1XOR CH,CHAGAIN0: SUB BYTE PTRSI,30H NEXT0:INC SI LOOP AGAIN0 LEA BX,TMPMOV CX,0AGAIN1: CALL BINDECCMP AX,0JNE EXITCALL HEXINCJMP AGAIN1EXIT: CALL CONVLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HMAIN ENDPBINDEC PROC NEAR
39、PUSH CX PUSH BX LEA SI,BUF2 MOV BX,SI MOV AL,BUF1 XOR AH,AH ADD SI,AXDEC SI MOV DI,SIBORROW:CMP BYTE PTRSI,0JNE DECINGDEC SI CMP SI,BX JB HALTJMP BORROWDECING:DEC BYTE PTRSIINC SIAGAINDEC: CMP SI,DIJA EXITBINDECMOV BYTE PTRSI,01HINC SIJMP AGAINDECHALT:MOV AX,1JMP DECRETEXITBINDEC:MOV AX,0DECRET: POP
40、 BXPOP CXRETBINDEC ENDPHEXINC PROC NEARPUSH CXLEA SI,TMPCARRY:CMP BYTE PTRSI,FJNE INCINGINC SIJMP CARRYINCING:CMP BYTE PTRSI,9JNZ NOTADDTENMOV BYTE PTRSI,AJMP BREAK0NOTADDTEN:INC BYTE PTRSIBREAK0:CMP SI,BXJB NOTAMOV BX,SINOTA:MOV AL,0CLDLEA DI,TMPMOV CX,SI SUB CX,DI REP STOSBEXITINC:POP CXRETHEXINC
41、ENDPCONV PROC NEAR MOV SI,BX LEA DI,TMP SUB BX,DI INC BX MOV CX,BX LEA DI,STROUT2AGAINCONV: MOV AL,SI MOV DI,AL DEC SI INC DI LOOP AGAINCONV MOV BYTE PTRDI,$ RET CONV ENDPCODE ENDSEND START15DATA SEGMENTBUF DB 50H DB 51H DUP(?) STROUT DB 0DH,0AH,0FDH DUP(?)TMP DB 0FCH DUP(0)DATA ENDSSTACK_SEG SEGMEN
42、T STACKDW 0FFH DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK_SEGMAIN PROC NEARSTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2MOV CL,BUF1XOR CH,CHAGAIN0: SUB BYTE PTRSI,30H NEXT0:INC SI LOOP AGAIN0 LEA BX,TMPMOV CX,0AGAIN1: CALL BINDECCMP AX,0JNE EX
43、ITCALL DECINCJMP AGAIN1EXIT: CALL CONVLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HMAIN ENDPBINDEC PROC NEARPUSH CX PUSH BX LEA SI,BUF2 MOV BX,SI MOV AL,BUF1 XOR AH,AH ADD SI,AXDEC SI MOV DI,SIBORROW:CMP BYTE PTRSI,0JNE DECINGDEC SI CMP SI,BX JB HALTJMP BORROWDECING:DEC BYTE PTRSIINC SIAGAINDEC: C
44、MP SI,DIJA EXITBINDECMOV BYTE PTRSI,01HINC SIJMP AGAINDECHALT:MOV AX,1JMP DECRETEXITBINDEC:MOV AX,0DECRET: POP BXPOP CXRETBINDEC ENDPDECINC PROC NEARPUSH CXLEA SI,TMPCARRY:CMP BYTE PTRSI,9JNE INCINGINC SIJMP CARRYINCING:INC BYTE PTRSICMP SI,BXJB NOTAMOV BX,SINOTA:MOV AL,0CLDLEA DI,TMPMOV CX,SI SUB C
45、X,DI REP STOSBEXITINC:POP CXRETDECINC ENDPCONV PROC NEAR MOV SI,BX LEA DI,TMP SUB BX,DI INC BX MOV CX,BX LEA DI,STROUT2AGAINCONV: MOV AL,SI MOV DI,AL DEC SI INC DI LOOP AGAINCONV MOV BYTE PTRDI,$ RET CONV ENDPCODE ENDSEND START16DATA SEGMENTBUF DB 50H DB 51H DUP(?) STROUT DB 0DH,0AH,0FDH DUP(?)TMP D
46、B 0FCH DUP(0)DATA ENDSSTACK_SEG SEGMENT STACKDW 0FFH DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK_SEGMAIN PROC NEARSTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2MOV CL,BUF1XOR CH,CHAGAIN0:CMP BYTE PTRSI,0JB NOTNUMCMP BYTE PTRSI,9JA NOTNUMSUB BYTE
47、 PTRSI,30HJMP NEXT0NOTNUM:CMP BYTE PTRSI,AJB ISDOWNCMP BYTE PTRSI,ZJA ISDOWNSUB BYTE PTRSI,37HJMP NEXT0ISDOWN:SUB BYTE PTRSI,57HNEXT0:INC SI LOOP AGAIN0 LEA BX,TMPMOV CX,0AGAIN1:CALL HEXDECCMP AX,0JNE EXITCALL DECINCJMP AGAIN1EXIT: CALL CONVLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HMAIN ENDPHEX
48、DEC PROC NEARPUSH CX PUSH BX LEA SI,BUF2 MOV BX,SI MOV AL,BUF1 XOR AH,AH ADD SI,AXDEC SI MOV DI,SIBORROW:CMP BYTE PTRSI,0JNE DECINGDEC SI CMP SI,BX JB HALTJMP BORROWDECING:DEC BYTE PTRSIINC SIAGAINDEC: CMP SI,DIJA EXITHEXDECMOV BYTE PTRSI,0FHINC SIJMP AGAINDECHALT:MOV AX,1JMP HEXRETEXITHEXDEC:MOV AX
49、,0HEXRET: POP BXPOP CXRETHEXDEC ENDPDECINC PROC NEARPUSH CXLEA SI,TMPCARRY:CMP BYTE PTRSI,9JNE INCINGINC SIJMP CARRYINCING:INC BYTE PTRSICMP SI,BXJB NOTAMOV BX,SINOTA:MOV AL,0CLDLEA DI,TMPMOV CX,SI SUB CX,DI REP STOSBEXITINC:POP CXRETDECINC ENDPCONV PROC NEAR MOV SI,BX LEA DI,TMP SUB BX,DI INC BX MO
50、V CX,BX LEA DI,STROUT2AGAINCONV: MOV AL,SI MOV DI,AL DEC SI INC DI LOOP AGAINCONV MOV BYTE PTRDI,$ RET CONV ENDPCODE ENDSEND START17DATA SEGMENTBUF DB 50H DB 51H DUP(?) STROUT DB 0DH,0AH,0FDH DUP(?)TMP DB 0FCH DUP(0)DATA ENDSSTACK_SEG SEGMENT STACKDW 0FFH DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CO
51、DE,DS:DATA,ES:DATA,SS:STACK_SEGMAIN PROC NEARSTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2MOV CL,BUF1XOR CH,CHAGAIN0:CMP BYTE PTRSI,0JB NOTNUMCMP BYTE PTRSI,9JA NOTNUMSUB BYTE PTRSI,30HJMP NEXT0NOTNUM:CMP BYTE PTRSI,AJB ISDOWNCMP BYTE PTRSI,ZJA ISDOWNSUB BYTE PTRSI,37HJMP
52、 NEXT0ISDOWN:SUB BYTE PTRSI,57HNEXT0:INC SI LOOP AGAIN0 LEA BX,TMPMOV CX,0AGAIN1:CALL HEXDECCMP AX,0JNE EXITCALL BININCJMP AGAIN1EXIT: CALL CONVLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HMAIN ENDPHEXDEC PROC NEARPUSH CX PUSH BX LEA SI,BUF2 MOV BX,SI MOV AL,BUF1 XOR AH,AH ADD SI,AXDEC SI MOV DI,S
53、IBORROW:CMP BYTE PTRSI,0JNE DECINGDEC SI CMP SI,BX JB HALTJMP BORROWDECING:DEC BYTE PTRSIINC SIAGAINDEC: CMP SI,DIJA EXITHEXDECMOV BYTE PTRSI,0FHINC SIJMP AGAINDECHALT:MOV AX,1JMP HEXRETEXITHEXDEC:MOV AX,0HEXRET: POP BXPOP CXRETHEXDEC ENDPBININC PROC NEARPUSH CXLEA SI,TMPCARRY:CMP BYTE PTRSI,1JNE IN
54、CINGINC SIJMP CARRYINCING:INC BYTE PTRSICMP SI,BXJB NOTAMOV BX,SINOTA:MOV AL,0CLDLEA DI,TMPMOV CX,SI SUB CX,DI REP STOSBEXITINC:POP CXRETBININC ENDPCONV PROC NEAR MOV SI,BX LEA DI,TMP SUB BX,DI INC BX MOV CX,BX LEA DI,STROUT2AGAINCONV: MOV AL,SI MOV DI,AL DEC SI INC DI LOOP AGAINCONV MOV BYTE PTRDI,
55、$ RET CONV ENDPCODE ENDSEND START18DATA SEGMENTBUF DB 38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H,0F5HCOUNT DB $-BUF STROUT DB 0DH,0AH,NEGATIVE NUMBER=0,$STRTMP DB 4 DUP(?) STRTEN DB 0DH,0AH,NEGSUM=-,4 DUP(?),$ NEGSUM DW 0DATA ENDSSTACK_SEG SEGMENT STACKDW 100 DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CO
56、DE,DS:DATA,SS:STACK_SEGSTART:MOV AX,DATAMOV DS,AXLEA SI,BUF MOV CL,COUNT XOR CH,CHAGAIN0:CMP BYTE PTRSI,0JG POSITIVEINC STROUT18 MOV AL,SINEG ALXOR AH,AHADD NEGSUM,AXPOSITIVE:INC SILOOP AGAIN0LEA SI,STRTMP MOV AX,NEGSUMMOV CL,10CONV:DIV CLCMP AL,0MOV SI,AHJE EXITCONV INC SI CBWJMP CONVEXITCONV:LEA S
57、I,STRTMPMOV CX,4AGAIN1:ADD BYTE PTRSI,30H INC SI LOOP AGAIN1LEA SI,STRTMPADD SI,3 LEA DI,STRTEN10MOV CX,4AGAIN2:MOV AL,SIMOV DI,ALDEC SIINC DILOOP AGAIN2 LEA DX,STROUT MOV AH,09H INT 21HLEA DX,STRTENMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START19DATA SEGMENTBUF1 DB 7 DB 8 DUP(?)BUF2 DB 7 DB 8
58、 DUP(?)TMP DB 4 DUP(?)STROUT DB 0DH,0AH,7 DUP(0),$ STRENT DB 0DH,0AH,$DATA ENDSSTACK_SEG SEGMENTDW 100 DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK_SEGSTART:MOV AX,DATAMOV DS,AXLEA DX,BUF1MOV AH,0AHINT 21HLEA DX,STRENTMOV AH,09HINT 21HLEA DX,BUF2MOV AH,0AHINT 21HLEA SI,BUF12MOV CX
59、,6AGAIN0:SUB BYTE PTRSI,30HINC SILOOP AGAIN0LEA SI,BUF22MOV CX,6AGAIN1:SUB BYTE PTRSI,30HINC SILOOP AGAIN1LEA SI,BUF12ADD SI,5LEA DI,BUF22ADD DI,5LEA BX,STROUT8MOV CX,6CLCAGAIN3:MOV AL,SIADC AL,DICLCCMP AL,10JAE CARRYADD BX,ALJMP NEXT3CARRY:SUB AL,10ADD BX,ALSTCNEXT3:DEC SIDEC DIDEC BXLOOP AGAIN3 AD
60、C BYTE PTRBX,0LEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START20DATA SEGMENTBUF1 DB 9 DB 10 DUP(?)BUF2 DB 9 DB 10 DUP(?)TMP DB 4 DUP(?)STROUT DB 0DH,0AH,9 DUP(0),$ STRENT DB 0DH,0AH,$DATA ENDSSTACK_SEG SEGMENT STACKDW 100 DUP(?)STACK_SEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STA
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交行貸款放款合同范例
- 企業(yè)對外投資入股合同范本
- 農(nóng)村改革合同范本
- 幼兒游戲與學習能力發(fā)展考核試卷
- 公共裝飾裝修合同范本
- 公眾號投訴合同范本
- 蘭州勞務(wù)外包合同范本
- 亞馬遜運營合同范本
- 他人經(jīng)營合同范本
- 公路承包轉(zhuǎn)讓合同范本
- 暖氣維修常識知識培訓課件
- 精神科患者服藥依從性健康宣教
- 設(shè)備維保的維修流程與指導手冊
- 急性腎小球腎炎病人護理課件
- 招標代理服務(wù)的關(guān)鍵流程與難點解析
- GB/T 5465.2-2023電氣設(shè)備用圖形符號第2部分:圖形符號
- 《三國演義》中的佛教文化:以黃承兒為例
- 材料預(yù)定協(xié)議
- 《學習的本質(zhì)》讀書會活動
- 高氨血癥護理課件
- 《石油化工電氣自動化系統(tǒng)設(shè)計規(guī)范》
評論
0/150
提交評論