chandle.c
来自「关于软中断和semihosting的一个程序,根据ADS1.2源代码修改,希望能」· C语言 代码 · 共 61 行
C
61 行
/*
* Copyright (C) ARM Limited, 1998. All rights reserved.
*/
extern void ledon_left (void);
extern void ledon_right (void);
void C_SWI_Handler( int swi_num, int *regs )
{
switch( swi_num )
{
case 0x24:
ledon_left();
regs[0] = regs[0] * regs[1];
ledon_right();
break;
case 1:
regs[0] = regs[0] + regs[1];
break;
case 2:
regs[0] = (regs[0] * regs[1]) + (regs[2] * regs[3]);
break;
/*
Re-entrant SWI:
case 2:
regs[0] = add_two(multiply_two(regs[0], regs[1]), multiply_two(regs[2], regs[3]));
break;
*/
case 3:
{
int w, x, y, z;
w = regs[0];
x = regs[1];
y = regs[2];
z = regs[3];
regs[0] = w + x + y + z;
regs[1] = w - x - y - z;
regs[2] = w * x * y * z;
regs[3] =(w + x) * (y - z);
}
break;
case 0xAB:
break;
case 0x123456:
break;
default :
break;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?