乙肝病毒量低需要乙肝抗病毒药物有哪些治疗吗

汇编语言(1)
在功能选择未进行歌曲播放时:
按数字 “1”,&播放歌曲“bei jing huan ying ni”
& &按数字 “2”,&播放歌曲“chun tian hua hui kai”
& &按数字 “3”,&播放歌曲“huan le song&”
& &按数字 “4”,&播放歌曲“dan yuan ren chang jiu”
& &按数字 “5”,&播放歌曲“qing fei de yi”
&&&按数字 “6” &播放上一首歌曲
&&&按数字 “7” &播放下一首歌曲
&&&按 &&&“ESC” 退出程序
&& 按 &&&“Enter” 退出程序
在歌曲播放时:
按u : Faster
按d : Slower
按p : Pause
按s : Start
按q : Quit&&
播放时同时打印音符
DATAS SEGMENT
SHOW DB 0AH,0DH
DB 20 DUP(' '),'*******************************************',0AH,0DH
DB 20 DUP(' '),'***LaLaLa!
Welcome To The SongLibrary****',0AH,0DH
DB 0AH,0DH
DB 20 DUP(' '),'********************MENU*******************',0AH,0DH
DB 20 DUP(' '),'**
1: bei jing huan ying ni
**',0AH,0DH
DB 20 DUP(' '),'**
2: chun tian hua hui kai
**',0AH,0DH
DB 20 DUP(' '),'**
3: huan le song
**',0AH,0DH
DB 20 DUP(' '),'**
4: dan yuan ren chang jiu
**',0AH,0DH
DB 20 DUP(' '),'**
5: qing fei de yi
**',0AH,0DH
DB 0AH,0DH
DB 20 DUP(' '),'*****************Function keys*************',0AH,0DH
DB 20 DUP(' '),'**
6 : last song
7 : next song
**',0AH,0DH
DB 20 DUP(' '),'**
u : Faster
d : Slower
**',0AH,0DH
DB 20 DUP(' '),'**
**',0AH,0DH
DB 20 DUP(' '),'**
**',0AH,0DH
DB 20 DUP(' '),'************Support @04th group************',0AH,0DH,'$'
DB 0AH,0DH
DB 'bei jing huan ying ni is singing','...',0AH,0DH,'$'
DB 'chun tian hua hui kai is singing','...',0AH,0DH,'$'
DB 'huan le song is singing','...',0AH,0DH,'$'
DB 'dan yuan ren chang jiu is singing','...',0AH,0DH,'$'
DB 'qing fei de yi is singing','...',0AH,0DH,'$'
'0'
ERROR_O DB 0AH,0DH,'Your order is error, please enter the right one:$'
Q DB 0AH,0DH,'The song is over, you can choose a song again.$'
P DB 0AH,0DH,'Have a rest, you can press s to start the song again.$'
S DB 0AH,0DH,'You has start the song again.',0AH,0DH,'$'
U DB 0AH,0DH,'You have made the beat shorter.',0AH,0DH,'$'
D DB 0AH,0DH,'You have made the beat longer.',0AH,0DH,'$'
OVER DB 0AH,0DH,'***************************************$'
DB 0AH,0DH,'this is a music program! please select!$'
DB 0AH,0DH,'***************************************$'
;****************************北京欢迎你*****************************
TONES_1 DW 659,2 DUP (659,784,659,587,659,587,659,659,587,440,523,659,587,587,523,440,523,587,659,784,587,659,880,784,440,587,523)
DW 587,523,440,523,587,659,784,587,659,880,784,784,659,587,659,587,523,784,880,587,440,659,587,587,523,-1
DW 7 DUP(25*200),50*200,5 DUP(25*200),25*600,13 DUP(25*200),25*600,6 DUP(25*200),50*200,5 DUP(25*200),25*600,13 DUP(25*200),25*600
DW 12 DUP(25*200),50*400,6 DUP(25*200),50*200,4 DUP(25*200),50*200
;**************************春天花会开******************************
TONES_2 DW 392,392,392,392,440,392,330,294,262,262,262,220,294
DW 392,392,392,392,330,494,220,262,262,262,330,294,330,440,220,262,-1
DW 25*200,3 DUP(25*200,50*200,25*200,50*200,50*200,50*400)
DW 25*200,50*200,25*200,50*200,50*200,50*200,50*200,4 DUP(25*200)
;****************************欢乐颂*****************************
TONES_3 DW 330,330,330,349,392,392,349,330,294,262,262,294,330,330,294,294
DW 330,330,349,392,392,349,330,294,262,262,294,330,294,262,262,-1
DW 13 DUP(50*200),25*600,2 DUP(25*200)
DW 12 DUP(50*200),25*600,2 DUP(25*200)
;**************************但愿人长久******************************
TONES_4 DW 262,262,262,220,196,220,262,262,262,220,196,220,294
DW 330,262,220,330,262,220,294,262,220,349,349,220,262,294,294,196,247,220,247,262,-1
DW 100,2 DUP(50*200,25*200,25*200,25*600,25*200,50*400)
DW 2 DUP(50*200,25*200,25*200),25*600,25*200,50*400,50*200,50*200,25*200,25*600,50*400,50*200,50*200,25*200,50*200,25*200,50*400
;***************************情非得已*****************************
TONES_5 DW 592,592,523,587,659,587,587
4 DUP(523),784,784,659,784,3 DUP(659),587,659,698,659,659
DW 659,587,523,523,440,440,523,587
DW 4 DUP(392),440,523,523,440,659,523,523,587,587,523,523,-1
BEAT_5 DW 12 DUP(25*200),50*600,6 DUP(25*200),50*200,25*200,25*200,50*600
DW 6 DUP(25*200),50*200,25*200,25*200,50*600,12 DUP(25*200),50*600
EXIT_BOX DB ?
SIDI DW 4 DUP(?)
DATAS ENDS
;数据段定义
;堆栈段定义
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
MAIN PROC FAR
MOV AX,DATAS
LEA SI,SHOW
CALL DISPLAY显示菜单列表
CALL INPUT
LEA SI,OVER
CALL DISPLAY显示结束菜单
;************显示菜单列表*************
DISPLAY PROC NEAR
MOV AH,09H
DISPLAY ENDP
INPUT PROC FAR
LEA BX,BEAT
MOV [BX],28010
LEA BX,EXIT_BOX
MOV [BX],0
MOV AH,01H
CMP AL,0DH回车退出
CMP AL,1BHESC退出
CMP AL,'1'判断输入选择歌曲1,2,3,4,5
CMP AL,'2'
CMP AL,'3'
CMP AL,'4'
CMP AL,'5'
CMP AL,'6'
cmp al,'7'
call nextT
;mov flag1,'0'
cmp flag,'1'
cmp flag,'2'
cmp flag,'3'
cmp flag,'4'
cmp flag,'5'
LEA SI,WAIT_M1提示音乐播放中
CALL DISPLAY
call printf
LEA SI,TONES_1
LEA DI,BEAT_1导入相应乐谱,音节存放地址
MOV SIDI,SI
MOV SIDI+2,DI用SIDI记录存放地址
CALL PLAY_MUSIC开启音乐播放程序
MOV flag,'1'
LEA SI,WAIT_M2提示音乐播放中
CALL DISPLAY
call printf
LEA SI,TONES_2
LEA DI,BEAT_2导入相应乐谱,音节存放地址
MOV SIDI,SI
MOV SIDI+2,DI用SIDI记录存放地址
CALL PLAY_MUSIC开启音乐播放程
MOV flag,'2'
LEA SI,WAIT_M3提示音乐播放中
CALL DISPLAY
call printf
LEA SI,TONES_3
LEA DI,BEAT_3导入相应乐谱,音节存放地址
MOV SIDI,SI
MOV SIDI+2,DI用SIDI记录存放地址
CALL PLAY_MUSIC开启音乐播放程序
MOV flag,'3'
LEA SI,WAIT_M4提示音乐播放中
CALL DISPLAY
call printf
LEA SI,TONES_4
LEA DI,BEAT_4导入相应乐谱,音节存放地址
MOV SIDI,SI
MOV SIDI+2,DI用SIDI记录存放地址
CALL PLAY_MUSIC开启音乐播放程序
MOV flag,'4'
LEA SI,WAIT_M5提示音乐播放中
CALL DISPLAY
call printf
LEA SI,TONES_5
LEA DI,BEAT_5导入相应乐谱,音节存放地址
MOV SIDI,SI
MOV SIDI+2,DI用SIDI记录存放地址
CALL PLAY_MUSIC开启音乐播放程序
MOV flag,'5'
;***************************************************
nextT proc下一首
mov al,flag
cmp al,'5'
mov flag,al
L1: mov flag,'1'
L2: pop ax
nextT endp
;***************************************************
last proc上一首
mov al,flag
cmp al,'1'
mov flag,al
L3: mov flag,'5'
L4: pop ax
;***************************************************
POP AX栈顶内容取出并存到目的操作数中,同时修正堆栈指针
MOV AH,4CH
INT 21H 返回DOS系统
INPUT ENDP
;******************音乐播放子函数*******************
PLAY_MUSIC PROC FAR
CMP [SI],0FFFFH判断一段音乐是否结束
JZ CIRCLE 若结束,则单曲循环
mov di,[si]
call printf
CALL KEY_C按键中断运行
LEA BX,EXIT_BOX
CMP BYTE PTR[BX],3出错
CMP BYTE PTR[BX],2退出
CMP BYTE PTR[BX],1暂停
CMP BYTE PTR[BX],0开始
LEA SI,ERROR_O
CALL DISPLAY
JMP RETURN
MOV AL,0B6H计数器的控制字要写入控制寄存器
OUT 43H,AL输入控制字寄存器,选用方式2,工作在方式三,分频器
MOV DX,12H把给定频率的高八位送给DX
MOV AX,3280H把给定频率的低八位送给AX
DIV WORD PTR[SI]SI的内容为给定的频率,放入
OUT 42H,AL低八位写入计数器二
MOV AL,AH 将高八位内容送到AL
OUT 42H,AL用两次计数器通道2用于发声
CALL SPK_ON启动蜂鸣器
MOV CX,[DI]
LEA BX,BEAT
MOV CX,[BX]
LOOP DELAY_M
LOOP BEAT_M
CALL SPK_OFF关闭蜂鸣器
MOV SI,SIDI
MOV DI,SIDI+2将其地址送回SI、DI
JMP PLAY_MUSIC
PLAY_MUSIC ENDP
;***************按键中断子函数*************
KEY_C PROC FAR
MOV AH,0BH检验键盘状态
;XOR AH,AH
CMP AL,0FFH无输入时
OK: MOV AH,01H
CMP AL,0DH
CMP AL,1BH
CMP AL,'q'判断输入选择功能
CMP AL,'u'
CMP AL,'d'
CMP AL,'p'
CMP AL,'s'
JZ START_K
JMP ERROR_W
暂停后开始
LEA BX,EXIT_BOX
MOV [BX],0
CALL DISPLAY
LEA BX,EXIT_BOX
MOV [BX],1
CALL DISPLAY
LEA BX,EXIT_BOX
MOV [BX],2
CALL DISPLAY
LEA BX,BEAT
MOV AX,[BX]
ADD AX,1000
MOV [BX],AX
CALL DISPLAY
LEA BX,BEAT
MOV AX,[BX]
SUB AX,1000
MOV [BX],AX
CALL DISPLAY
LEA BX,EXIT_BOX
MOV [BX],3
恢复AX的值
KEY_C ENDP
;**************开蜂鸣器子函数***************
SPK_ON PROC NEAR
;保存ax的值
;获取61h端口的当前值
;把61h端口低二位置1,即打开蜂鸣器
OUT 61H,AL
;输出数据到61h端口
;恢复ax的值
;**************关蜂鸣器子函数***************
SPK_OFF PROC NEAR
;保存ax的值
;获取61h端口的当前值
AND AL,0FCH
;把61h端口低二位置0,即关闭蜂鸣器
OUT 61H,AL
;输出数据到61h端口
;恢复ax的值
SPK_OFF ENDP
print音符打印子程序
cmp di,131
cmp di,147
cmp di,165
cmp di,175
cmp di,196
cmp di,221
cmp di,248
cmp di,262
cmp di,294
cmp di,330
cmp di,350
cmp di,393
cmp di,441
cmp di,495
cmp di,525
cmp di,589
cmp di,661
cmp di,700
cmp di,786
cmp di,882
cmp di,990
cmp al,'p'暂停
mov dx,'1'
mov dx,'2'
mov dx,'3'
mov dx,'4'
mov dx,'5'
mov dx,'6'
mov dx,'7'
mov ah,02h
CODES ENDS
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2694次
排名:千里之外

我要回帖

更多关于 乙肝抗病毒治疗药物 的文章

 

随机推荐