北理工汇编语言30题_第1页
北理工汇编语言30题_第2页
北理工汇编语言30题_第3页
北理工汇编语言30题_第4页
北理工汇编语言30题_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.请任意输入一个字符串,将该串倒序后在屏幕上显示DATA SEGMENTBUF DB 0FFHDB ?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

2、 DEC SI INC DILOOP AGAIN MOV BYTE PTRDI,$ LEA DX,ANS MOV AH,09H INT 21H MOV AH,4CHINT 21HCODE ENDSEND START2.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上DATA SEGMENTBUF1 DB 20 DB ? DB 20 DUP(?)NUM1 DB ?NUM2 DB ?BUF3 DB 13,10BUF2 DB NUM1=,0,0,13,10,NUM2=,0,0,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATAM

3、AIN PROC FARMOV AX,DATA MOV DS,AX MOV ES,AX CALL INPUT CALL COUNT CALL FIND CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROC MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RETINPUT ENDPOUTPUT PROC LEA DX,BUF3 MOV AH,9 INT 21H RETOUTPUT ENDPCOUNT PROC MOV CX,0FFFFH LEA SI,BUF1+2AGAIN2: CMP BYTE PTR SI,0DH

4、JZ TO INC SI LOOP AGAIN2TO: NOT CX RETCOUNT ENDPFIND PROCPUSH CXLEA SI,BUF1+2AGAIN: CMP BYTE PTR SI, JNZ T1 INC NUM1T1:INC SILOOP AGAIN POP CX LEA SI,BUF1+2AGAIN1: CMP BYTE PTR SI,AJNZ T INC NUM2T:INC SILOOP AGAIN1 MOV DL,10 MOV AL,NUM1MOV AH,0 DIV DL OR AX,3030H MOV WORD PTR BUF3+7,AX MOV AL,NUM2 M

5、OV AH,0DIV DL OR AX,3030H MOV WORD PTR BUF3+16,AXRETFIND ENDPCODE ENDS END MAIN3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上DATA SEGMENTBUF1 DB 20 DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0DATA ENDSCODE SEGMENT ASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX CALL

6、INPUT CALL LOCATE CALL PREPARE CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROC MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RETINPUT ENDPLOCATE PROC LEA BX,BUF1+2 DEC BXAGAIN2:INC BX CMP BYTE PTR BX, JNZ TO5 CALL DELETE TO5: CMP BYTE PTR BX,0DH JNZ AGAIN2 RETLOCATE ENDP OUTPUT PROC LEA DX,BUF1 MOV AH,9

7、 INT 21H RETOUTPUT ENDPDELETE PROC PUSH BX AGAIN3:CMP BYTE PTR BX,0DH JZ TO2 MOV AL, BYTE PTR BX+1 MOV BYTE PTR BX,AL INC BX JMP AGAIN3TO2: POP BX DEC BX RET PREPARE PROC CALL COUNTLEN LEA SI,BUF4 ADD SI,CX MOV BYTE PTR SI,$ LEA SI,BUF1 MOV SI,0D0AH RETPREPARE ENDP COUNTLEN PROC MOV CX,0FFFFH LEA SI

8、,BUF1+2AGAIN5: CMP BYTE PTR SI,0DH JZ TO3 INC SI LOOP AGAIN5TO3: NOT CX RETCOUNTLEN ENDPCODE ENDS END MAIN4.请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上DATA SEGMENTBUF1 DB 20 DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0DATA ENDSCODE SEGMENT ASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA

9、MOV DS,AX MOV ES,AX CALL INPUT CALL LOCATE CALL PREPARE CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROC MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RETINPUT ENDPLOCATE PROC LEA BX,BUF1+2 DEC BXAGAIN2:INC BX CMP BYTE PTR BX,A JNZ TO5 CALL ADDTION TO5: CMP BYTE PTR BX,0DH JNZ AGAIN2 RETLOCATE ENDP OUTPU

10、T PROC LEA DX,BUF1 MOV AH,9 INT 21H RETOUTPUT ENDPADDTION PROC PUSH BX AGAIN3:INC BX INC COUN CMP BYTE PTR BX,0DH JNZ AGAIN3AGAIN4:MOV AL, BYTE PTR BX MOV BYTE PTR BX+1,AL DEC BX DEC COUN JNZ AGAIN4 POP BX MOV BX,CC RETADDTION ENDP PREPARE PROC CALL COUNTLEN LEA SI,BUF4 ADD SI,CX MOV BYTE PTR SI,$ L

11、EA SI,BUF1 MOV SI,0D0AH RETPREPARE ENDP COUNTLEN PROC MOV CX,0FFFFH LEA SI,BUF1+2AGAIN5: CMP BYTE PTR SI,0DH JZ TO3 INC SI LOOP AGAIN5TO3: NOT CX RETCOUNTLEN ENDPCODE ENDS END MAIN5.请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上DATA SEGMENTBUF1 DB 20 DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0

12、DATA ENDSCODE SEGMENT ASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX CALL INPUT CALL LOCATE CALL PREPARE CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROC MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RETINPUT ENDPLOCATE PROC LEA BX,BUF1+2 DEC BXAGAIN2:INC BX CMP BYTE PTR BX,

13、A JB TO5 CMP BYTE PTR BX,Z JAE TO5 CALL CHANGE TO5: CMP BYTE PTR BX,0DH JNZ AGAIN2 RETLOCATE ENDP OUTPUT PROC LEA DX,BUF1 MOV AH,9 INT 21H RETOUTPUT ENDPCHANGE PROC ADD BYTE PTR BX,20H RETCHANGE ENDPPREPARE PROC CALL COUNTLEN LEA SI,BUF4 ADD SI,CX MOV BYTE PTR SI,$ LEA SI,BUF1 MOV SI,0D0AH RETPREPAR

14、E ENDP COUNTLEN PROC MOV CX,0FFFFH LEA SI,BUF1+2AGAIN5: CMP BYTE PTR SI,0DH JZ TO3 INC SI LOOP AGAIN5TO3: NOT CX RETCOUNTLEN ENDPCODE ENDS END MAIN6.请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。DATA SEGMENTBUF1 DB 20 DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0DATA ENDSCODE SEGMENT ASSUME CS:C

15、ODE ,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX CALL INPUT CALL LOCATE CALL PREPARE CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROC MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RETINPUT ENDPLOCATE PROC LEA BX,BUF1+2 DEC BXAGAIN2:INC BX CMP BYTE PTR BX,A JB TO5 CMP BYTE PTR BX,z JA TO5

16、 CMP BYTE PTR BX,a JAE TO6 CMP BYTE PTR BX,Z JBE TO6 JMP TO5 TO6: CALL DELETE TO5: CMP BYTE PTR BX,0DH JNZ AGAIN2 RETLOCATE ENDP OUTPUT PROC LEA DX,BUF1 MOV AH,9 INT 21H RETOUTPUT ENDPDELETE PROC PUSH BX AGAIN3:CMP BYTE PTR BX,0DH JZ TO2 MOV AL, BYTE PTR BX+1 MOV BYTE PTR BX,AL INC BX JMP AGAIN3TO2:

17、 POP BX DEC BX RET PREPARE PROC CALL COUNTLEN LEA SI,BUF4 ADD SI,CX MOV BYTE PTR SI,$ LEA SI,BUF1 MOV SI,0D0AH RETPREPARE ENDP COUNTLEN PROC MOV CX,0FFFFH LEA SI,BUF1+2AGAIN5: CMP BYTE PTR SI,0DH JZ TO3 INC SI LOOP AGAIN5TO3: NOT CX RETCOUNTLEN ENDPCODE ENDS END MAIN7.现有一组字符串为data,name,time,file,cod

18、e,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk, 并将结果在显示器上显示DATA SEGMENTOUT1 DB 13,10BUF1 DB data name time file code path user exit quit text$BUF2 DB 5 DB ?BUF DB 5 DUP(?)BUF0 DB diskDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX CALL IN

19、PUT CALL FIND CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROC MOV DX,OFFSET BUF2 MOV AH,0AH INT 21H RETINPUT ENDPOUTPUT PROC LEA DX,OUT1 MOV AH,9 INT 21H RETOUTPUT ENDPFIND PROCLEA BX,BUF1 MOV CX,10AGAIN: MOV SI,BXLEA DI,BUFPUSH CXMOV CX,4REPZ CMPSB JZ TO JMP TP2TO: CALL CHANGETP2 : POP CXADD BX

20、,5LOOP AGAINRETFIND ENDPCHANGE PROCMOV AX,WORD PTR buf0 MOV WORD PTR BX,AXMOV AX,WORD PTR buf0+2 MOV WORD PTR BX+2,AXRETCHANGE ENDPCODE ENDSEND MAIN 8.现有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。DATA SEGMENTBUF1 DB ram yes red the get for and key not may $MIN DB 4DATA

21、 ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX CALL INORDER CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPOUTPUT PROC LEA DX,BUF1 MOV AH,09H INT 21HRETOUTPUT ENDPINORDER PROC MOV SI,0MOV CX,10AGAIN: MOV BX,SIMOV DI,SIADD DI,4PUSH CXMOV CX,10 MOV AX,DI DIV MI

22、NSUB CX,AXAGAIN2: MOV AL,BUF1BX SUB AL,BUF1DI JB TO JE TO3 JMP TO2TO3 : MOV AL,BUF1BX+1 SUB AL,BUF1DI+1 JB TOJMP TO2TO: MOV BX,DITO2: ADD DI,4LOOP AGAIN2PUSH WORD PTR BUF1BXPUSH WORD PTR BUF1BX+2PUSH WORD PTR BUF1SIPUSH WORD PTR BUF1SI+2POP WORD PTR BUF1BX+2POP WORD PTR BUF1BX POP WORD PTR BUF1SI+2P

23、OP WORD PTR BUF1SIPOP CXADD SI,4 dec cxCMP CX ,1JNZ AGAINRETINORDER ENDPCODE ENDSEND MAIN9.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除, 并在显示器上显示。DATA SEGMENTBUF4 DB 10,13BUF1 DB data name time file code path user exit quit text $BUF2 DB 5 DB ? DB 5 DUP(0)BUF3

24、 DB 13,10,NO FOUND$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX CALL INPUT CALL FINDMOV AX,4C00H INT 21HMAIN ENDPINPUT PROC LEA DX,BUF2 MOV AH,0AH INT 21H RETINPUT ENDPOUTPUT1 PROC LEA DX,BUF3 MOV AH,09H INT 21H MOV AX,4C00H INT 21HOUTPUT1 ENDPOUT

25、PUT2 PROC LEA DX,BUF4 MOV AH,09H INT 21HRETOUTPUT2 ENDPFIND PROC LEA BX,BUF1 MOV CX,10AGAIN: PUSH CX MOV SI,BX LEA DI,BUF2+2 MOV CX,4REPZ CMPSB JZ TO JMP TO2TO: CALL DELETE JMP TO3TO2: POP CX ADD BX,5 LOOP AGAIN CALL OUTPUT1TO3: pop cx RETFIND ENDPDELETE PROC CLD MOV SI ,BXADD SI,5 MOV DI, BXAGAIN1:

26、 MOVSB CMP BYTE PTR BX,$ JZ TO1 INC BX JMP AGAIN1TO1: call output2 RETDELETE ENDPCODE ENDS END MAIN10.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序, 并在显示器上显示。DATA SEGMENTBUF1 DB data name time file code path user exit quit text $MIN DB 5BUF2 DB 5 DB ? DB 5

27、 DUP(0)DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX CALL INPUT CALL INORDER CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROCLEA DX, BUF2MOV AH,0AHINT 21HMOV CX ,4LEA SI ,BUF2+2LEA DI,BUF1+50REP MOVSB RETINPUT ENDPOUTPUT PROC LEA DX,BUF1 MOV AH,

28、09H INT 21HRETOUTPUT ENDPINORDER PROC MOV SI,0MOV CX,11AGAIN: MOV BX,SIMOV DI,SIADD DI,5PUSH CXMOV CX,11 MOV AX,DI DIV MINSUB CX,AXAGAIN2: MOV AL,BUF1BX SUB AL,BUF1DI Ja TO JE TO3 JMP TO2TO3 : MOV AL,BUF1BX+1 SUB AL,BUF1DI+1 Ja TOJMP TO2TO: MOV BX,DITO2: ADD DI,5LOOP AGAIN2PUSH WORD PTR BUF1BXPUSH W

29、ORD PTR BUF1BX+2PUSH WORD PTR BUF1SIPUSH WORD PTR BUF1SI+2POP WORD PTR BUF1BX+2POP WORD PTR BUF1BX POP WORD PTR BUF1SI+2POP WORD PTR BUF1SIPOP CXADD SI,5 dec cxCMP CX ,1JNZ AGAINRETINORDER ENDPCODE ENDSEND MAIN11.键盘输入一个十进制数(字类型),以十六进制的形式输出DATA SEGMENTBUF DB 6 DB ? DB 6 DUP(?)MINUS DW 10STORE DB 6 DU

30、P(0)PRINT DB 10,13STORE2 DB 0,0,0,0,10,13,$EROR DB 13,10,INPUT ERROR!$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX R: CALL INPUTCALL CHANGE CALL OUTPUTJMP R MOV AX,4C00H INT 21HMAIN ENDPCHANGE PROCMOV CL ,BUF+1 LEA BX,BUF +2 LEA SI,STOREAGAIN: MOV

31、 AL ,BX AND AL,0FH MOV SI,AL INC BX INC SI DEC CL JNZ AGAIN LEA SI,STOREMOV CL ,BUF+1DEC CLMOV DL,SIMOV DH,0 PUSH DXINC SI AGAIN2: POP AX MUL MINUS MOV BL,SIMOV BH,0 ADD BX,AXPUSH BX INC SI DEC CL JNZ AGAIN2POP AX RETCHANGE ENDPINPUT PROC LEA DX,BUF MOV AH,0AH INT 21H CALL CHECK RETINPUT ENDP OUTPUT

32、 PROC MOV DX,AX MOV AL,AH AND AX,0F00FHMOV CL ,4 SHR AH,CLADD AX,3030H CMP AH,39H JBE GOON ADD AH,7GOON: CMP AL ,39H JBE GOON1 ADD AL,7GOON1:XCHG AL,AH MOV WORD PTR STORE2,AX MOV AX,DX MOV AH,AL AND AX,0F00FHMOV CL ,4 SHR AH,CLADD AX,3030H CMP AH,39H JBE GOON2 ADD AH,7GOON2: CMP AL ,39H JBE GOON3ADD

33、 AL,7 GOON3:XCHG AL,AH MOV WORD PTR STORE2+2,AX LEA DX,PRINT MOV AH,9 INT 21H RETOUTPUT ENDP ERROR PROC LEA DX,EROR MOV AH,9 INT 21H MOV AX,4C00H INT 21H ERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR BX,30H JB TO CMP BYTE PTR BX,39H JA TOINC BXDEC CL JNZ AGAIN3 JMP TO2TO: CALL ER

34、RORTO2: RETCHECK ENDPCODE ENDS END MAIN12.键盘输入一个十进制数(字类型),以二进制的形式输出DATA SEGMENTBUF DB 6 DB ? DB 6 DUP(?)MINUS DW 10STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 16 DUP(0),10,13,$MINUS2 DW 2EROR DB 13,10,INPUT ERROR!$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX M

35、OV DS,AX R: CALL INPUTCALL CHANGECALL OUTPUTJMP R MOV AX,4C00H INT 21HMAIN ENDPCHANGE PROCMOV CL ,BUF+1 LEA BX,BUF +2 LEA SI,STOREAGAIN: MOV AL ,BX AND AL,0FH MOV SI,AL INC BX INC SI DEC CL JNZ AGAIN LEA SI,STOREMOV CL ,BUF+1DEC CLMOV DL,SIMOV DH,0 PUSH DXINC SI AGAIN2: POP AX MUL MINUS MOV BL,SIMOV

36、 BH,0 ADD BX,AXPUSH BX INC SI DEC CL JNZ AGAIN2POP AXRETCHANGE ENDPINPUT PROC LEA DX,BUF MOV AH,0AH INT 21H CALL CHECK RETINPUT ENDP OUTPUT PROC MOV CX,16 LEA BX,STORE2+15AGAIN4: DIV MINUS2 MOV BX,DLOR BYTE PTR BX,30H DEC BX LOOP AGAIN4 LEA DX,PRINT MOV AH,9INT 21H RETOUTPUT ENDP ERROR PROC LEA DX,E

37、ROR MOV AH,9 INT 21H MOV AX,4C00H INT 21H ERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR BX,30H JB TO CMP BYTE PTR BX,39H JA TOINC BXDEC CL JNZ AGAIN3 JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDS END MAIN 13.键盘输入一个二进制数(字类型),以十六进制的形式输出DATA SEGMENTBUF DB 17 DB ? DB 17 DUP(?)MINU

38、S DW 2STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 0,0,0,0,10,13,$EROR DB 13,10,INPUT ERROR!$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AXR: CALL INPUTCALL CHANGE CALL OUTPUTJMP R MOV AX,4C00H INT 21HMAIN ENDPCHANGE PROC LEA SI,BUF +2 MOV CX,15 AND BYT

39、E PTR SI,0FH MOV BL,SIMOV BH,0 INC SIPUSH BX AGAIN2: POP AX MUL MINUSAND BYTE PTR SI,0FH MOV BL,SIMOV BH,0 ADD BX,AXPUSH BX INC SI LOOP AGAIN2POP AXRETCHANGE ENDPINPUT PROC LEA DX,BUF MOV AH,0AH INT 21H CALL CHECK RETINPUT ENDP OUTPUT PROC MOV DX,AX MOV AL,AH AND AX,0F00FHMOV CL ,4 SHR AH,CLADD AX,3

40、030H CMP AH,39H JBE GOON ADD AH,7GOON: CMP AL ,39H JBE GOON1 ADD AL,7GOON1:XCHG AL,AH MOV WORD PTR STORE2,AX MOV AX,DX MOV AH,AL AND AX,0F00FHMOV CL ,4 SHR AH,CLADD AX,3030H CMP AH,39H JBE GOON2 ADD AH,7GOON2: CMP AL ,39H JBE GOON3ADD AL,7 GOON3:XCHG AL,AH MOV WORD PTR STORE2+2,AX LEA DX,PRINT MOV A

41、H,9 INT 21H RETOUTPUT ENDP ERROR PROC LEA DX,EROR MOV AH,9 INT 21H MOV AX,4C00H INT 21H ERROR ENDPCHECK PROCMOV CX,16LEA BX,BUF+2AGAIN3: CMP BYTE PTR BX,30H JB TO CMP BYTE PTR BX,31H JA TOINC BXLOOP AGAIN3 JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDS END MAIN 14.键盘输入一个二进制数(字类型),以十进制的形式输出DATA SEG

42、MENTBUF DB 17 DB ? DB 17 DUP(?)MINUS DW 2STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 5 DUP(0),10,13,$MINUS2 DW 10EROR DB 13,10,INPUT ERROR!$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AXR: CALL INPUTCALL CHANGECALL OUTPUTJMP R MOV AX,4C00H INT 21HMAIN

43、ENDPCHANGE PROCLEA SI,BUF +2 MOV CX,15 AND BYTE PTR SI,0FH MOV BL,SIMOV BH,0 INC SIPUSH BX AGAIN2: POP AX MUL MINUSAND BYTE PTR SI,0FH MOV BL,SIMOV BH,0 ADD BX,AXPUSH BX INC SI LOOP AGAIN2POP AXRETCHANGE ENDPINPUT PROC LEA DX,BUF MOV AH,0AH INT 21H CALL CHECK RETINPUT ENDP OUTPUT PROC MOV CX,5 LEA B

44、X,STORE2+4AGAIN4: MOV DX,0DIV MINUS2 MOV BX,DLOR BYTE PTR BX,30H DEC BX LOOP AGAIN4 LEA DX,PRINT MOV AH,9INT 21H RETOUTPUT ENDP ERROR PROC LEA DX,EROR MOV AH,9 INT 21H MOV AX,4C00H INT 21H ERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR BX,30H JB TO CMP BYTE PTR BX,39H JA TOINC BXD

45、EC CL JNZ AGAIN3 JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDS END MAIN 15、键盘输入一个十六进制数(字类型),以十进制的形式输出DATA SEGMENTBUF DB 5 DB ? DB 5 DUP(?)MINUS DW 10STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 5 DUP(0),10,13,$MINUS2 DW 2EROR DB 13,10,INPUT ERROR!$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAM

46、AIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX R: CALL INPUTCALL CHANGECALL OUTPUTJMP R MOV AX,4C00H INT 21HMAIN ENDPCHANGE PROCMOV AX,WORD PTR BUF+2XCHG AL,AHCMP AH,39HJBE TO5 SUB AH,37H JMP TPTO5: SUB AH,30HTP:CMP AL,39HJBE TO1 SUB AL,37H JMP TP1TO1: SUB AL,30HTP1: MOV CL,4SHL AH,CL OR AH,AL MOV AL,

47、0PUSH AXMOV AX,WORD PTR BUF+4XCHG AL,AHCMP AH,39HJBE TO3 SUB AH,37H JMP TP3TO3 : SUB AH,30HTP3:CMP AL,39HJBE TO4 SUB AL,37H JMP TP4TO4: SUB AL,30HTP4: MOV CL,4SHL AH,CL OR AL,AH MOV AH,0POP DXOR AX,DX RETCHANGE ENDPINPUT PROC LEA DX,BUF MOV AH,0AH INT 21H ;CALL CHECK RETINPUT ENDP OUTPUT PROC MOV CX

48、,5 LEA BX,STORE2+4AGAIN4: MOV DX,0DIV MINUS MOV BX,DLOR BYTE PTR BX,30H DEC BX LOOP AGAIN4 LEA DX,PRINT MOV AH,9INT 21H RETOUTPUT ENDP ERROR PROC LEA DX,EROR MOV AH,9 INT 21H MOV AX,4C00H INT 21H ERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR BX,41H JB TO CMP BYTE PTR BX,46H JA TO

49、INC BXDEC CL JNZ AGAIN3 JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDS END MAIN 16.键盘输入一个十六进制数(字类型),以二进制的形式输出DATA SEGMENTBUF DB 5 DB ? DB 5 DUP(?)MINUS DW 10STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 16 DUP(0),10,13,$MINUS2 DW 2EROR DB 13,10,INPUT ERROR!$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,

50、DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX R: CALL INPUTCALL CHANGECALL OUTPUTJMP R MOV AX,4C00H INT 21HMAIN ENDPCHANGE PROCMOV AX,WORD PTR BUF+2XCHG AL,AHCMP AH,39HJBE TO5 SUB AH,37H JMP TPTO5: SUB AH,30HTP:CMP AL,39HJBE TO1 SUB AL,37H JMP TP1TO1: SUB AL,30HTP1: MOV CL,4SHL AH,CL OR AH,AL

51、 MOV AL,0PUSH AXMOV AX,WORD PTR BUF+4XCHG AL,AHCMP AH,39HJBE TO3 SUB AH,37H JMP TP3TO3 : SUB AH,30HTP3:CMP AL,39HJBE TO4 SUB AL,37H JMP TP4TO4: SUB AL,30HTP4: MOV CL,4SHL AH,CL OR AL,AH MOV AH,0POP DXOR AX,DX RETCHANGE ENDPINPUT PROC LEA DX,BUF MOV AH,0AH INT 21H ;CALL CHECK RETINPUT ENDP OUTPUT PRO

52、C MOV CX,16 LEA BX,STORE2+15AGAIN4:MOV DX,0 DIV MINUS2 MOV BX,DLOR BYTE PTR BX,30H DEC BX LOOP AGAIN4 LEA DX,PRINT MOV AH,9INT 21H RETOUTPUT ENDP ERROR PROC LEA DX,EROR MOV AH,9 INT 21H MOV AX,4C00H INT 21H ERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR BX,41H JB TO CMP BYTE PTR B

53、X,46H JA TOINC BXDEC CL JNZ AGAIN3 JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDS END MAIN 17.将一组有符号数中的负数求和,并统计负数的个数,并在屏幕上以十进制的形式显示结果。38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H,0F5HDATA SEGMENTBUF DB 38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H,0F5HCOUNT DB 0SUM DW 0MINUS DB 100,10PRINT DB NUM=,0,10,13,SUM=

54、-,0,0,0,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX CALL OPERATE CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPOPERATE PROC MOV CX,10 LEA BX,BUFAGAIN: CMP BYTE PTR BX,0 JGE TO INC COUNT NEG BYTE PTR BX MOV AL,BX CBW ADD SUM ,AXTO: INC BX LOOP AGAINRE

55、TOPERATE ENDPOUTPUT PROC MOV AH,COUNT OR AH,30H MOV PRINT+4,AH LEA SI,PRINT+12 MOV CX,2 MOV AX,SUMLEA DI,MINUS AGAIN1: DIV BYTE PTR DI OR AL,30H MOV SI,AL MOV AL,AH MOV AH,0 INC SI INC DI LOOP AGAIN1 OR AL,30H MOV SI,AL LEA DX, PRINT MOV AH,9 INT 21HRETOUTPUT ENDPCODE ENDS END MAIN18.键盘输入十个数,分别统计0到9

56、,10到99,100以上的数的个数,并显示结果DATA SEGMENTBUF DB 61 DB ? DB 61 DUP(?)C1 DB 30HC2 DB 30HC3 DB 30HPRINT DB 10,13OUTP DB 0- 9:,30H,0,10,13 DB 10-99:,30H,0,10,13 DB 100:,30H,0,$DATA ENDSCODE SEGMENT ASSUME CS:CODE ,DS:DATA,ES:DATA MAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AXCALL INPUT CALL COUNT CALL PREPAREC

57、ALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPCOUNT PROC LEA BX,BUF+2 MOV CX,10AGAIN: MOV AX,WORD PTR BXXCHG AL,AH CMP AX,3030H JA TO1000 MOV AX,WORD PTR BX+2XCHG AL,AH CMP AX,3030H JE TO10 CMP AX,3130H JAE TO1000 INC C2 JMP ENDDTO1000: INC C3 JMP ENDDTO10: INC C1ENDD: ADD BX,6 LOOP AGAIN RETCOUNT ENDPPRE

58、PARE PROCLEA BX,OUTPCMP C1,3AH JE TO1MOV AL,C1 MOV BX+7,ALJMP CON1TO1: MOV BYTE PTR BX+6,31HMOV BYTE PTR BX+7,30HCON1: CMP C2,3AH JE TO2MOV AL,C2 MOV BYTE PTR BX+17,ALJMP CON2TO2: MOV BYTE PTR BX+16,31HMOV BYTE PTR BX+17,30HCON2: CMP C3,3AH JE TO3MOV AL,C3 MOV BX+27,ALJMP CON3TO3: MOV BYTE PTR BX+26

59、,31HMOV BYTE PTR BX+27,30HCON3: RETPREPARE ENDP INPUT PROC LEA DX,BUF MOV AH,0AH INT 21H RETINPUT ENDPOUTPUT PROCLEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPCODE ENDS END MAIN19.键盘输入两组数743216、527864,按BCD码求和,并将结果显示在屏幕上DATA SEGMENTBUF1 DB 7 DB ? DB 7 DUP(?)BUF2 DB 7 DB ? DB 7 DUP(?)PRINT DB 10 ,13BUF DB

60、$,6 DUP(0),$DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,BUF1 CALL INPUTCALL OUTPUT LEA DX,BUF2 CALL INPUT CALL OPERATE CALL OUTPUT MOV AX,4C00H INT 21HMAIN ENDPINPUT PROC MOV AH ,0AH INT 21H RETINPUT ENDPOUTPUT PROC LEA DX,PRINT MOV AH,9 I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论