- 积分
- 90
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
发表于 2006-5-22 09:58:02
|
显示全部楼层
回复 #49 Xinshou 的帖子
抱歉。很久没碰,忘了很多东西了。。。呵呵
试着解释一下任意应答吧。。*&*
extp #37h, #1
movb rl4, 3FB0h ;取得应答标志位
cmpb rl4, #0h ;是否有值
jmpr , cc_Z, loc_40D298 ;无就跳
extp #0Eh, #1 ;取得可选项
mov r12, 3A42h ;取得可选项
jb r12.2, loc_40D298 ;如果选择了就跳
mov [-r0], r8 ;保护寄存器
mov [-r0], r9 ;保护寄存器
mov [-r0], r4 ;保存邮编的值,也就是应答标志位
calls 0B5h, 146Ch ;忘了是什么函数
mov r12, #1Ch ;这几句是memcpy函数的参数定义,拷贝1c个字节
mov [-r0], r12 ;拷贝字节数入栈
mov r12, #3F00h ;目标pof
mov r13, #33h ;目标page
mov r14, #pof(auto) ;源pof
mov r15, #pag(auto) ;源page,这里就是指向自定义的文件名
calls 0C7h, 83DCh ;memcpy函数,这段意思就是把指定文件名拷贝到33h.3f00,拷贝数量为1c个字节
add r0, #2 ;保护动作,恢复栈顶
mov r4, [r0+] ;应答标志(邮编)到r4
add r4, #302Fh ;处理文件名
mov r13, #33h ;处理文件名
mov r12, #3F00h ;处理文件名
extp r13, #2 ;处理文件名
movb [r12+#16h], rh4 ;处理文件名
movb [r12+#17h], rl4 ;处理文件名
calls 0CFh, 0AC98h ;playvmo函数
mov r12, #0
mov r13, #1
extp #37h, #2
mov 3FB0h, r12
mov 3FB2h, r13
loc_40D294:
mov r9, [r0+]
mov r8, [r0+]
loc_40D298:
mov r12, r8
mov r13, r9
rets |
|