📄 sacm_a1600_user_asm.asm
字号:
//========================================================
// 文件名称: SACM_A1600_User_ASM.asm
// 功能描述: A1600用户函数(汇编语言版),用于保存或获取语音资源数据
// 包括:
// _USER_A1600_GetResource_Init
// _USER_A1600_GetResource
// 这些函数被语音库自动调用,可根据需要自行修改这些函数的内容
// 维护记录: 2006-10-16 v1.0, by Qwerty
//========================================================
//======================================================
// 全局函数和变量声明
//======================================================
.PUBLIC _USER_A1600_GetResource_Init
.PUBLIC _USER_A1600_GetResource
//======================================================
// 外部函数和变量声明
//======================================================
.EXTERNAL _SACM_A1600_SpeechTable // 语音资源列表,在resource.asm中定义
//======================================================
// 变量定义
//======================================================
.RAM
R_Resource_Addr: .dw 0
//**************************************************************************
// 代码段定义
//**************************************************************************
.CODE
//======================================================
// 函数名称: _USER_A1600_GetResource_Init
// 实现功能: (被A1600函数库自动调用)获取语音资源数据,初始化操作
// 入口参数: R1: 语音资源序号
// 出口参数: 无
// 破坏寄存器: 无
//======================================================
_USER_A1600_GetResource_Init:
push r1 to [sp]
r1 += _SACM_A1600_SpeechTable
r1 = [r1]
r1 = [r1]
[R_Resource_Addr] = r1 // 获取待播放语音的起始地址
pop r1 from [sp]
retf
//======================================================
// 函数名称: _USER_A1600_GetResource
// 实现功能: (被A1600函数库自动调用)获取语音资源数据,并填充到解码队列中
// 入口参数: R1: 待填充解码队列的起始地址(该参数由函数库自动产生)
// R2: 待填充数据的数量,单位为Word(该参数由函数库自动产生)
// 出口参数: 无
// 破坏寄存器: 无
//======================================================
_USER_A1600_GetResource:
push r1, r4 to [sp]
r3 = [R_Resource_Addr]
?Loop:
r4 = [r3++]
[r1++] = r4
r2 -= 1
jnz ?Loop
[R_Resource_Addr] = r3
pop r1, r4 from [sp]
retf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -