正文

汇编循环程序设计2006-11-13 09:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hammers/20265.html

分享到:

实验内容:

在内存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

阅读(4321) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册