流程图 如是数字N ,则响铃N次;如不是数字,则不响

[复制链接]
查看11 | 回复1 | 2011-1-13 11:42:33 | 显示全部楼层 |阅读模式
data SEGMENT
ts DB 'please input:$'
again DB 0ah,0dh,'again?(y/n)$'
data ENDS
code SEGMENT
ASSUME CS:code,DS:data
enter1 PROC ;子程序,实现的功能是回车换行
PUSH AX
PUSH DX
MOV AH,02h
MOV DL,0dh
INT 21h
MOV DL,0ah
INT 21h
POP DX
POP AX
RET
enter1 ENDP
start:
MOV AX,data ;加载数据段
MOV DS,AX
a0003:LEA DX,ts
MOV AH,09h ;调用09号功能显示输出字符串
INT 21h
MOV AH,01h ;调用01号功能接收字符
INT 21h
CMP AL,'1' ;接收的字符与1的ASCll比较,小于则转移
JB a0001
CMP AL,'9' ;接收的字符与9的ASCll比较,大于则转移
JA a0001
SUB AL,30h ;将ASCll码转换为数字
XOR AH,AH ;将AX高八位清零,此时AX中的数字为接收的数字
MOV CX,AX ;将AX的值赋给CX以控制循环
a0002:MOV AH,02 ;响铃程序段
MOV DL,07
INT 21H
LOOP a0002 ;循环指令
a0001:LEA DX,again ;提示是否再次运行本程序
MOV AH,09h
INT 21h
MOV AH,01h ;接收字符
INT 21h
CALL enter1
CMP AL,'y' ;将接收的字符与y比较,相同则转移
JE a0003
CMP AL,'Y' ;将接收的字符与Y比较,相同则转移
JE a0003
MOV AH,4ch
INT 21h
code ENDS
END start

回复

使用道具 举报

千问 | 2011-1-13 11:42:33 | 显示全部楼层
开始——读取——判断——输出——结束
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行