1 ; multi-segment executable file template.
2
3 data segment
4
5 ends
6
7 stack segment
8 dw 128 dup(0)
9 ends
10
11 code segment
12 start:
13 ; set segment registers:
14 mov ax, data
15 mov ds, ax
16 mov es, ax
17
18 ; add your code here
19 BEGIN:
20 MOV AH, 1 ;从键盘输入一个字符的DOS调用AL存放输入的字符
21 INT 21H
22 SUB AL, '0' ;输入的是字符需要转化为数字
23 JB STOP ;输入字符<'0'吗?;below
24 CMP AL, 9 ;输入字符>'9'吗?;above
25 JA STOP
26 CBW ;AL扩展到AH
27 MOV CX, AX ;响铃次数N
28 JCXZ STOP
29 BELL:
30 MOV DL, 07H ;准备响铃
31 MOV AH, 2 ;显示一个字符的DOS调用,实际为响铃
32 INT 21H
33 LOOP BELL
34 STOP: RET
35
36 ; wait for any key....
37 mov ah, 1
38 int 21h
39
40 mov ax, 4c00h ; exit to operating system.
41 int 21h
42 ends
43
44 end start ; set entry point and stop the assembler.