1、北京理工大学微机原理总汇编语言上机实验题实验一请在数据段中定义两个数,要求编写程序分别计算出这两个数的和、差、积、商,并用Debug的相关命令查询计算结果。(略)实验二内存自TABLE开始的连续16个单元中存放着015的平方值,查表求DATA中任意数X(0X 15)的平方值,并将结果放在RESULT中。DATA1 SEGMENT TABLE DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225 DATA DB 10 RESULT DB ? DATA1 ENDS STAC SEGMENT DB 100 DUP (?) STAC ENDS COD
2、E SEGMENT ASSUME DS:DATA1,SS:STAC,CS:CODESR:MOV AX,DATA1 MOV DS,AX MOV AX,STAC MOV SS,AX LEA BX,TABLE MOV AH,0 MOV AL,DATA XLAT MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END SR实验三试编写一程序:比较两个字符串STRING1 和STRING2所含的字符是否相同。若相同则显示MATCH,否则显示NO MATCH。DATA1 SEGMENT STRING1 DB 10,?,10 DUP (?) STRING2 DB 10,
3、?,10 DUP (?) REM1 DB PLEASE INPUT STR1: $ REM2 DB PLEASE INPUT STR2: $ MESS1 DB MATCH$ MESS2 DB NO MATCH$DATA1 ENDSCODE1 SEGMENT ASSUME CS:CODE1,DS:DATA1STT: MOV AX,DATA1 MOV DS,AX MOV ES,AXLEA DX,REM1MOV AH,09HINT 21HLEA DX, STRING1MOV AH, 0AHINT 21HMOV DL, 0DHMOV AH, 6INT 21HMOV DL, 0AHMOV AH, 6IN
4、T 21HLEA DX,REM2MOV AH,09HINT 21HLEA DX, STRING2MOV AH, 0AHINT 21HMOV DL,0DHMOV AH,6INT 21HMOV DL,0AHMOV AH,6INT 21HLEA SI, STRING1 LEA DI,STRING2 MOV CL,SI+1 MOV BL,DI+1 CMP CL,BL JNE NOM CLD MOV CH,0 ADD CL,2 REPZ CMPSB JNZ NOMMAT: LEA DX,MESS1 JMP SHORT DISP1NOM: LEA DX,MESS2 DISP1: MOV AH,09H IN
5、T 21H MOV AH,4CH INT 21H CODE1 ENDS END STT实验四设有10个学生的成绩分别为:56,69,84,82,73,88,99,63,100,80分。试编写程序分别统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并将各分数段的人数在屏幕上显示出来。DATA SEGMENTSCORE DB 56,69,84,82,73,88,99,63,100,80NUM_UNDER60 DB 0NUM_60TO69 DB 0NUM_70TO79 DB 0NUM_80TO89 DB 0NUM_90TO99 DB 0NUM_100 DB 0
6、DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV CX,10LEA BX,SCORECOMPARE:CMP BYTE PTR BX,60JL UNDER60JMP IS60TO69IS60TO69:CMP BYTE PTR BX,70JL _60TO69JMP IS70TO79IS70TO79:CMP BYTE PTR BX,80JL _70TO79JMP IS80TO89IS80TO89:CMP BYTE PTR BX,90JL _80TO89JMP IS90TO99IS90TO
7、99:CMP BYTE PTR BX,100JL _90TO99JZ EQUAL100UNDER60:ADD NUM_UNDER60,1JMP CON_60TO69:ADD NUM_60TO69,1JMP CON_70TO79:ADD NUM_70TO79,1JMP CON_80TO89:ADD NUM_80TO89,1JMP CON_90TO99:ADD NUM_90TO99,1JMP CONEQUAL100:ADD NUM_100,1CON:LEA BX,BX+1LOOP COMPARELAST:MOV DL,NUM_UNDER60ADD DL,30HMOV AH,2INT 21HMOV
8、DL, MOV AH,2INT 21HMOV DL,NUM_60TO69ADD DL,30HMOV AH,2INT 21HMOV DL, MOV AH,2INT 21HMOV DL,NUM_70TO79ADD DL,30HMOV AH,2INT 21HMOV DL, MOV AH,2INT 21HMOV DL,NUM_80TO89ADD DL,30HMOV AH,2INT 21HMOV DL, MOV AH,2INT 21HMOV DL,NUM_90TO99ADD DL,30HMOV AH,2INT 21HMOV DL, MOV AH,2INT 21HMOV DL,NUM_100ADD DL,
9、30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验5设有10个学生的成绩分别为88.75.95.63.98.78.87.73.90.60编写程序分别排出他们的名次,并分别存放在后续的10个单元中DATA SEGMENTSCORE DB 88,75,95,63,98,78,87,73,90,60ORDER DB 10 DUP(?)DISPLAY DB $DATA ENDSSTACK SEGMENTDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:ST
10、ACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA DI,ORDERLEA BX,SCOREMOV DX,10L2:MOV AL,BXLEA SI,SCOREMOV CX,10MOV BYTE PTRDI,1L1:CMP AL,SIJNC TTL:INC BYTE PTRDITT:INC SILOOP L1INC BXINC DIDEC DXJNZ L2MOV CX,10LEA DX,DISPLAYMOV AH,9INT 21HLEA SI,ORDERL3:MOV AL,SICMP AL,10JAE TENMOV DL
11、,SIADD DL,30HMOV AH,2INT 21HJMP DOUTEN:DAAPUSH AXPUSH CXMOV CL,4SHR AL,CLPOP CXADD AL,30HMOV DL,ALMOV AH,2INT 21HPOP AXAND AL,0FHADD AL,30HMOV DL,ALMOV AH,2INT 21HDOU:INC SICMP CX,1JZ FMOV DL,MOV AH,2INT 21HLOOP L3F:MOV AH,4CHINT 21HCODE ENDSEND START实验六编写程序:要求完成从键盘输入字符,若输入的是数字N,则响铃N次。如输入不是数字,则不响铃。D
12、ATA SEGMENT NUM DB ?DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,DATA MOV DS,AX MOV AH,1 INT 21H XOR CX,CX CMP AL,30H JL L1 CMP AL,3AH JGE L1 SUB AL,30H MOV CL,ALRING: MOV DL,07H MOV AH,2 INT 21H CALL DELAY LOOP RINGDELAY PROCDLAY: PUSH CX MOV BX,0FFFFHLP2: MOV CX,176HLP1: PUSHF POPF LOO
13、P LP1 DEC BX JNZ LP2 POP CX RETDELAY ENDPL1: MOV AH,4CH INT 21HCODE ENDSEND STARTCODE ENDSEND START实验七子程序调用:从键盘输入字符串(包括数字,大写字母,小写字母,标点符号),要求调用子程序将其中的小写字母转换成大写字母,然后将结果输出。DATA SEGMENT BUF DB 100,?,100 DUP(?) CR DB 13,10,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA DX,B
14、UF MOV AH,0AH INT 21H MOV DL,0DH MOV AH,6 INT 21H MOV DL,0AH MOV AH,6 INT 21H XOR BX,BX LEA SI,BUF+2 XOR CX,CX MOV CL,BUF+1L1: MOV DL,SI CMP DL,a JB N CMP DL,z JA N CALL CHANGEN: MOV AH,02H INT 21H INC SI LOOP L1 JMP LASTCHANGE PROCPUSH CXSUB DL,20HPOP CXRETCHANGE ENDPLAST: LEA DX,CR MOV AH,9 INT 21H MOV AH,4CH INT 21HCODE ENDSEND START