实验内容:
在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。设计程序完成如下功能:
①根据用户输入的一个2位十进制数,作为查找对象,在该数组中查找,若找到则显示“Y”,若没找到则显示“N”。
②根据用户输入的一个2位十六进制数,作为查找对象,在该数组中查找,若找到则显示“Y”,若没找到则显示“N”。
************************************************************************
(1)
DATASEG SEGMENT
SCORE DB 90,80,75,30,64,95 DUP(70) ;数据段
DATASEG ENDS
CODESEG SEGMENT
ASSUME DS:DATASEG,CS:CODESEG
START:
MOV AX,DATASEG
MOV DS,AX
MOV AH,1 ;读入第一个数字a
INT 21H
SUB AL,30H
MOV CL,10
MUL CL
MOV BL,AL
MOV AH,1 ;读入第二个数字b
INT 21H
SUB AL,30H
ADD AL,BL ;得到a*10+b
MOV AH,2 ;Ready to print char
MOV BX,0
MOV CX,100
AGAIN: CMP SCORE[BX],AL
JE FOUND
INC BX
LOOP AGAIN
MOV DL,'N' ;Not found, print 'N'
JMP DONE
FOUND: MOV DL,'Y' ;Wow, Found it! print 'Y'
DONE: INT 21H
MOV AH,4CH
INT 21H
CODESEG ENDS
END START
*****************************************************************************
(2)
DATASEG SEGMENT
SCORE DB 90,80,75,30,64,95 DUP(70)
DATASEG ENDS
CODESEG SEGMENT
ASSUME DS:DATASEG,CS:CODESEG
START:
MOV AX,DATASEG
MOV DS,AX
MOV AH,1
INT 21H
SUB AL,30H
CMP AL,6
JA NEXT
MOV CL,16
MUL CL
MOV BL,AL
MOV AH,1
INT 21H
SUB AL,37H
CMP AL,'Z'
JA NEXT
ADD AL,BL
MOV AH,2
MOV BX,0
MOV CX,100
AGAIN: CMP SCORE[BX],AL
JE FOUND
INC BX
LOOP AGAIN
MOV DL,'N'
JMP DONE
FOUND: MOV DL,'Y'
DONE:
INT 21H
NEXT:
MOV AH,4CH
INT 21H
CODESEG ENDS
END START
评论