No.29902 作者:langren0468 邮件:langren04681980@163.com ID:31 登陆:26次 QQ:16435101 -- MSN:langren0468@hotmail.com 文章数:1085篇 最后登陆IP:210.41.106.221 最后登陆:2005/3/23 13:40:31 注册:2003/3/11 8:50:00 财富:2882 发帖时间:2003/5/13 14:08:15 发贴者IP:218.88.133.118 标题:langren0468:发布一些常用小程序,有不足请指出! 摘要:No.29902发布一些常用小程序,有不足请指出! DIVS 功能:双字节二进制有符号数除法(补码) 入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。 出口信息:OV=0时商在R2、R3中,OV=1时溢出。 影响资源:PSW、A、B、R1~R7 堆栈需求: 5字节 DIVS: LCALL MDS ;计算结果的符号和两个操作数的绝对值 PUSH PSW ;保存结果的符号 LCALL DIVD ;计算两个绝对值的商 JNB OV,DVS1 ;溢出否? POP ACC ;溢出,放去结果的符号,保留溢出标志 RET DVS1: POP PSW ;未溢出,取出结果的符号 MOV R4,#0 MOV R5,#0 MDSE: JB F0,MDS2 ;用补码表示结果 CLR OV ;结果为正,原码即补码,计算成功 RET MDS: CLR F0 ;结果符号初始化 MOV A,R6 ;判断第二操 ......
>>返回讨论的主题
|