📄 abs_32.asm
字号:
//============================================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//============================================================================
// 工程名称: 求32位有符号数具对值
// 功能描述: 程序4.7 求32位有符号数具对值
// 入口参数:R3有符号数低16位
// R4有符号数高16位
// 出口参数: R1绝对值结果的低16位
// R2绝对值结果的高16位
// 文件来源: 《SPCE061单片机原理及应用技术》 第四章 程序设计
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.0(or later)
//
// 涉及的库: (a) C-Lib: (CMacro.lib);
// 组成文件:
// abs_32.asm
// Resource.asm
// 日期: 2003-5-22(建立)
// 2003-7-16(添加版本说明及版权声明并做代码标准化)
//===========================================================================
.CODE
.PUBLIC F_Abs_32;
.PUBLIC _main;
_main:
r3 = 0xffff;
r4 = 0xffff;
call F_Abs_32;
nop;
r3 = 0;
r4 = 0xffff;
call F_Abs_32;
nop;
r3 = 0xffff;
r4 = 0;
call F_Abs_32;
jmp _main;
F_Abs_32:
r1 = r3; //传送低16位
r2 = r4; //传送高16位
jmi ?neg; //如果为负则跳转到负数处理
retf; //为正数则无需任何处理,返回
?neg: //负数处理
r1 ^= 0xffff; //低16位去反
r2 ^= 0xffff; //高16位取反
r1 += 1; //低16位加1
r2 += 0,Carry; //高16位加进位
retf;
//====================================================================================
//abs_32.asm结束
//====================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -