《北京理工大学汇编上机试题及答案(2017)》由会员分享,可在线阅读,更多相关《北京理工大学汇编上机试题及答案(2017)(71页珍藏版)》请在金锄头文库上搜索。
1、北京理工大学汇编上机试题和代码信息工程 05111551 1120151290 李宏赞1. 请任意输入一个字符串,将该串倒序后在屏幕上显示。DATAS SEGMENTBUF1 DB 0FFHDB ?DB 0FFH DUP(?)BUF2 DB 0DH,0AH,0FDH DUP(?) DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,BUF1MOV AH,0AHINT 21HMOV AX,0MOV AL,BUF11LEA SI,BUF11ADD SI,AXLEA DI,BUF22MOV
2、CX,0MOV CL,BUF11L:MOV AL,SIMOV DI,ALDEC SIINC DILOOP LMOV BYTE PTR DI,$LEA DX,BUF2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODES ENDSEND START2. 请任意输入一个字符串,统计其中空格和 A 的个数,并将结果显示在屏幕上。DATA SEGMENTBUF DB 0FFHDB ?DB 0FFH DUP (?)OUTPUT DB 0DH,0AH, A =000DB 0DH,0AH,SPACE=000,$DATA ENDSCODE SEGMENTASSUME CS:CODE,D
3、S:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2MOV CX,0MOV CL,BUF1L:CMP BYTE PTRSI,AJNE NOTACMP OUTPUT10,9JE CAR1INC OUTPUT10JMP NEXTCAR1:CMP OUTPUT9,9JE CAR2MOV OUTPUT10,0INC OUTPUT9JMP NEXTCAR2:MOV OUTPUT10,0MOV OUTPUT9,0INC OUTPUT8JMP NEXTNOTA:CMP BYTE PTRSI, JNE NEXTCMP OU
4、TPUT21,9JE CSR1INC OUTPUT21JMP NEXTCSR1:CMP OUTPUT20,9JE CSR2MOV OUTPUT21,0INC OUTPUT20JMP NEXTCSR2:MOV OUTPUT21,0MOV OUTPUT20,0INC OUTPUT19JMP NEXTNEXT:INC SILOOP LLEA DX,OUTPUTMOV AH,09HINT 21HMOV AX,4C00HINT 21HCODE ENDSEND3. 请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。DATA SEGMENTBUF1 DB 0FFHDB ?DB 0FFH DU
5、P(?)BUF2 DB 0DH,0AH,0FDH DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUF1MOV AH,0AHINT 21HMOV CX,0MOV CL,BUF11LEA SI,BUF12LEA DI,BUF22L: CMP BYTE PTR SI, JE MMOV AL,SIMOV DI,ALINC DIM:INC SI LOOP LMOV BYTE PTR DI,$LEA DX,BUF2MOV AH,09HINT 21HMOV AX,4C00HINT 21HC
6、ODE ENDSEND4. 请任意输入一个字符串,将其中 A 换成 CC,并将结果显示在屏幕上。DATA SEGMENTBUF1 DB 0FFHDB ?DB 0FFH DUP(?)BUF2 DB 0DH,0AH,0FDH DUP(?) DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUF1MOV AH,0AHINT 21HMOV CX,0MOV CL,BUF11LEA SI,BUF12LEA DI,BUF22L:CMP BYTE PTR SI,AJNE MMOV WORD PTR DI,C
7、CADD DI,2INC SI JMP N M:MOV AL,SIMOV DI,ALINC DIINC SIN:LOOP LMOV BYTE PTR DI,$LEA DX,BUF2MOV AH,09HINT 21HMOV AX,4C00HINT 21HCODE ENDSEND5. 请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。DATA SEGMENTBUF1 DB 0FFHDB ?DB 0FFH DUP(?)BUF2 DB 0DH,0AH,0FDH DUP(?) DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV
8、AX,DATAMOV DS,AXLEA DX,BUF1MOV AH,0AHINT 21HMOV CX,0MOV CL,BUF11LEA SI,BUF12LEA DI,BUF22L:MOV AL,SIMOV DI,ALCMP BYTE PTR DI,aJNB M OR BYTE PTR DI,00100000BM:INC DIINC SIN:LOOP LMOV BYTE PTR DI,$LEA DX,BUF2MOV AH,09HINT 21HMOV AX,4C00HINT 21HCODE ENDSEND6. 请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。DATA SEGM
9、ENTBUF1 DB 0FFHDB ?DB 0FFH DUP(?)BUF2 DB 0DH,0AH,0FDH DUP(?) DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUF1MOV AH,0AHINT 21HMOV CX,0MOV CL,BUF11LEA SI,BUF12LEA DI,BUF22L:CMP BYTE PTR SI,AJNB MMOV AL,SIMOV DI,ALINC SIINC DIJMP NEXT M:CMP BYTE PTR SI,zJNA NMOV AL,SIMO
10、V DI,ALINC SIINC DIJMP NEXTN:CMP BYTE PTR SI,aJB HINC SIJMP NEXTH:CMP BYTE PTR SI,ZJA OINC SIJMP NEXTO:MOV AL,SIMOV DI,ALINC SIINC DIJMP NEXTNEXT:LOOP LMOV BYTE PTR DI,$LEA DX,BUF2MOV AH,09HINT 21HMOV AX,4C00HINT 21HCODE ENDSEND7. 现有一组字符串为 data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入
11、 4 个字符的字符串,若存在将其修改为 disk, 并在显示器上显示。DATAS SEGMENTBUF DB 05HDB ?DB 05H DUP(?)LIB DB 0DH,0AH,data DB 0DH,0AH,nameDB 0DH,0AH,timeDB 0DH,0AH,fileDB 0DH,0AH,codeDB 0DH,0AH,pathDB 0DH,0AH,userDB 0DH,0AH,exitDB 0DH,0AH,quitDB 0DH,0AH,text,$ REPLACE DB diskDATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,ES:D
12、ATASSTART:MOV AX,DATASMOV DS,AXMOV ES,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF2LEA DI,LIB2MOV BX,DIMOV CX,10L:CLDPUSH CXMOV CX,4REPZ CMPSBJNZ NPOP CXMOV SI,BXLEA DI,REPLACEMOV CX,4M:MOV AL,DIMOV SI,ALINC DIINC SILOOP M JMP EXITN:ADD BX,6 MOV DI,BXLEA SI,BUF2LOOP LEXIT:LEA DX,LIBMOV AH,09HINT 21HMOV A
13、H,4CHINT 21HCODES ENDSEND START8. 现有一组字符串为 ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按 ASCII 大小排序,并在显示器上显示。DATA SEGMENTLIB DB ram,0DH,0AHDB yes,0DH,0AHDB red,0DH,0AHDB the,0DH,0AHDB get,0DH,0AHDB for,0DH,0AHDB and,0DH,0AHDB key,0DH,0AHDB not,0DH,0AHDB may,0DH,0AH,$DATA ENDSCODE SEGMENTASSUME C
14、S:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV DI,9A:MOV CX,DILEA SI,LIBB:MOV AL,SICMP AL,SI+5PUSH SIJA DAYUJE DENGYUJB XIAOYUDENGYU:INC SIMOV AL,SICMP AL,SI+5JA DAYUJB XIAOYUJE DENGYUDAYU:POP SIPUSH SIMOV BX,3JIAOHUAN: MOV AL,BYTE PTRSIMOV AH,BYTE PTRSI+5MOV BYTE PTRSI,AHMOV BYTE PTRSI+5,ALINC
15、 SIDEC BXJNZ JIAOHUANXIAOYU:POP SIADD SI,5LOOP BDEC DIJNZ ALEA DX,LIBMOV AH,09HINT 21HMOV AH,4CH INT 21HCODE ENDSEND START9、现有一组字符串为 data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入 4 个字符的字符串,若存在将其删除, 并在显示器上显示。DATA SEGMENTBUF DB 05HDB ?DB 05H DUP (?)LIB 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