汇编语言程序设计 下面程序的功能为:从键盘输入一个数...
汇编语言程序设计 下面程序的功能为:从键盘输入一个数据(0~9),如果是ESC键则结束程序执行,如果键值大于39H,则说明不在0~9之间,重新输入数据,否则,调用2号功能,按照输入的数据响铃,数据为响铃的次数。例如输入5,则响铃5次。 DATA SEGMENT ;空数据段 DATA ENDS STACK SEGMENT ‘stack’ ;堆栈段 STA Dw 100 DUP() STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA ;段寄存器和堆栈指针初始化 MOV DS,AX ;等待输入一位数字,数字就是响铃的次数 KKK: ;调用1号功能,从键盘输入响铃的次数 ;是ESC(1B)键吗? ;是ESC键则转结束 ;键值是39H吗? JA TTT ;大于39H,则非数字1-9,转TTT ;从ASCII中提取数值 ;清零AH,AX中含有响铃的次数 ;将响铃的次数送BP GGG: MOV AH,02H ;调用2号功能,07H为铃声的ASCII码 MOV DL,07H INT 21H ;响铃1次 MOV CX,10H ;延时,CX为延时时间常数 UUU: LOOP UUU ;延时一段时间 DEC BP ;响铃次数减1 JNZ GGG ;不为0则转GGG TTT: JMP KKK EXIT: MOV AX,4C00H INT 21H ;返回DOS CODE ENDS END START