- 积分
- 247
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
发表于 2005-11-27 00:51:27
|
显示全部楼层
demfare,有点难度的东西搞起来才有意思嘛。呵呵。
这个补丁以前有人帮我发过的。
这里给出我以前搞移植时从狼大的原程序修改并做了很清楚的注释的原代码,直接可以用SFE汇编。狼大写得很是精采,特别是对堆栈的使用上。
;M55版的。
org 551660h
mov r15, #7h ;原入口有,用于EXTP找到显通话时间的地址
mov r14, #3344h ;这里应当是原显秒的地址,由于后面要加上时间,故要加上4个字
movb rl4, #2Dh ;这里是'-'符号的显示。可以换成其它的。2f为'/'好象好看点。
extp r15, #1 ;取得显通话时间的值
movb [r14], rl4 ;把-加上
add r14, #1 ;移一下指针准备加上小时。
extp #0dh, #1 ;系统时间中的小时
mov r4,25cah
callr aaaa ;这个CALL是把小时分离
mov r4, #3A00h ;加入时间中的':'
extp r15, #1
movb [r14], rh4
add r14, #1
extp #0dh, #1 ;系统时间中的分钟。
mov r4,25c8h
callr aaaa
mov r14, #3340h ;此处恢复入口,这个地方非常关键。关系到上面所加的.当时我在这里碰到了问题,因为没有了解清楚,所以什么都没显示出来。这和上面的mov r14, #3344h 可大有关系
rets
aaaa:
mov r5, #0Ah
mov 0FE0Eh, r4
divu r5
movb rl4,0fe0ch
movb rh4,0FE0Eh
add r4, #3030h
extp r15, #3
movb [r14], rh4
movb [r14+#1], rl4
movb [r14+#2], rh5
add r14, #2
ret |
|