|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 dengziqi 于 2012-8-1 22:20 编辑
ar_0: set 0 ;0 给标号 VAR_0B
Pshm x,y ; IX IY 入栈
Tsx ;XK:IK 现在存放的是栈指针地址
Ldab #8 ;B=00001000 累加器B 设置为8
Tbek ;EK扩展字段存到累加器B[3:0]中 此时B存放着EK
Clrw 4632h ;地址为4632H 的内存空间的数据清零
Ldab #8 ;B=00001000
Tbek ;EK扩展字段存到累加器B[3:0]中
Ldd #8101h ;8101H 数据存入 D 累加器中
Std 4630h ;8101H 存入地址为4630H 的内存空间中地址为4630:4631
Ldab #8 ;B=00001000
Tbek ;EK扩展字段存到累加器B[3:0]中
Ldd #1 ;D累加器为 0001H
Std 4636h ;D 累加器内容存入 地址为4636H 的内存空间中
Ldab #8 ;B=00001000
Tbek ;EK扩展字段存到累加器B[3:0]中
Clrw 4638h ;地址为4638H 的内存空间的数据清零
Ldab #8 ;B=00001000
Tbek ;EK扩展字段存到累加器B[3:0]中
Clrw 4642h ;地址为4642H 的内存空间的数据清零
Clrw 4644h ;地址为4644H 的内存空间的数据清零
Clrw var_0,x ;地址为X和VAR-0 的内存空间的数据清零
Loc_B688: ;CODE XREF:sub_B644+6A j
Ldab #9 ;B=00001001
Ldy #4382h ; 4382H存入 IY 中
Tbyk ;累加器B[3:0]的内容传递给YK
Ldd var_0,x ;iX给D
Lde #30h ;把30H放入E累加器
Emuls ;E*D =E : D
Lsrd ; 不循环右移累加器D
Ady ;[IK:YK]+D=IK:YK地址指向的空间
Ady ;[IK:YK]+D=IK:YK地址指向的空间
Bcc loc_B6A2 ;BCC=0 则 执行函数 Loc_B6A2
Aiy #1 ;1加到IY上,如溢出则KY 也+1或-1
Loc_B6A2: ;COED XREF:cub_B644+5A j
Clr 1,y ;清零 加1
Incw var_0,x ;内容加1,在存回原来的M HHYG地方。 VAR-0,X
Ldd var_0,x ;内容存放到D里,
Cpd #19h ;比较D 和 19H
Bcs loc_B688 ;BCC=1 则 执行函数 Loc_B688
Pulm y,x ;pulm 出栈
Rts ;返回入口 |
|