📄 sci.ls
字号:
1 ; C Compiler for ST7 (COSMIC Software)
2 ; Generator V4.4a - 17 Dec 2001
3 ; Optimizer V4.2g - 21 Dec 2001
1572 ; 45 void PrintUnsignedInt( unsigned int x )
1572 ; 46 {
1573 switch .text
1575 xref.b _PrintUnsignedInt$L
1576 0000 _PrintUnsignedInt:
1578 0000 b701 ld _PrintUnsignedInt$L+1,a
1579 0002 bf00 ld _PrintUnsignedInt$L,x
1581 ; 47 char b[6], *s = b + 5;
1583 0004 a6fd ld a,#_PrintUnsignedInt$L-3
1584 0006 5f clr x
1585 0007 bffe ld _PrintUnsignedInt$L-2,x
1586 ; 49 *s-- = '\0';
1588 0009 bf00 ld c_x,x
1589 000b 97 ld x,a
1590 000c 9f ld a,x
1591 000d a001 sub a,#1
1592 000f b7ff ld _PrintUnsignedInt$L-1,a
1593 0011 2402 jrnc L6
1594 0013 3afe dec _PrintUnsignedInt$L-2
1595 0015 L6:
1596 0015 4f clr a
1597 0016 bf01 ld c_x+1,x
1598 0018 92c700 ld [c_x.w],a
1599 001b L5211:
1600 ; 52 *s-- = (char)(x % 10 + '0');
1602 001b b6fe ld a,_PrintUnsignedInt$L-2
1603 001d b700 ld c_x,a
1604 001f beff ld x,_PrintUnsignedInt$L-1
1605 0021 9f ld a,x
1606 0022 a001 sub a,#1
1607 0024 b7ff ld _PrintUnsignedInt$L-1,a
1608 0026 2402 jrnc L01
1609 0028 3afe dec _PrintUnsignedInt$L-2
1610 002a L01:
1611 002a 89 push x
1612 002b be00 ld x,c_x
1613 002d 89 push x
1614 002e b601 ld a,_PrintUnsignedInt$L+1
1615 0030 be00 ld x,_PrintUnsignedInt$L
1616 0032 3f00 clr c_y
1617 0034 90ae0a ld y,#10
1618 0037 cd0000 call c_udiv
1620 003a 909f ld a,y
1621 003c ab30 add a,#48
1622 003e 85 pop x
1623 003f bf00 ld c_x,x
1624 0041 85 pop x
1625 0042 bf01 ld c_x+1,x
1626 0044 92c700 ld [c_x.w],a
1627 ; 53 x /= 10;
1629 0047 b601 ld a,_PrintUnsignedInt$L+1
1630 0049 be00 ld x,_PrintUnsignedInt$L
1631 004b 3f00 clr c_y
1632 004d 90ae0a ld y,#10
1633 0050 cd0000 call c_udiv
1635 0053 b701 ld _PrintUnsignedInt$L+1,a
1636 0055 bf00 ld _PrintUnsignedInt$L,x
1637 ; 54 } while( x );
1639 0057 ba00 or a,_PrintUnsignedInt$L
1640 0059 26c0 jrne L5211
1641 ; 56 SCI_PutString( s+1 );
1643 005b b6ff ld a,_PrintUnsignedInt$L-1
1644 005d befe ld x,_PrintUnsignedInt$L-2
1645 005f 4c inc a
1646 0060 2601 jrne L21
1647 0062 5c inc x
1648 0063 L21:
1650 ; 57 }
1653 0063 cc0205 jp _SCI_PutString
1707 ; 59 void PrintUnsignedChar( unsigned char x )
1707 ; 60 {
1708 switch .text
1710 xref.b _PrintUnsignedChar$L
1711 0066 _PrintUnsignedChar:
1713 0066 b700 ld _PrintUnsignedChar$L,a
1715 ; 61 char b[4], *s = b + 3;
1717 0068 a6fd ld a,#_PrintUnsignedChar$L-3
1718 006a 5f clr x
1719 006b bffe ld _PrintUnsignedChar$L-2,x
1720 ; 63 *s-- = '\0';
1722 006d bf00 ld c_x,x
1723 006f 97 ld x,a
1724 0070 9f ld a,x
1725 0071 a001 sub a,#1
1726 0073 b7ff ld _PrintUnsignedChar$L-1,a
1727 0075 2402 jrnc L61
1728 0077 3afe dec _PrintUnsignedChar$L-2
1729 0079 L61:
1730 0079 4f clr a
1731 007a bf01 ld c_x+1,x
1732 007c 92c700 ld [c_x.w],a
1733 007f L1611:
1734 ; 66 *s-- = (char)(x % 10 + '0');
1736 007f b6fe ld a,_PrintUnsignedChar$L-2
1737 0081 b700 ld c_x,a
1738 0083 beff ld x,_PrintUnsignedChar$L-1
1739 0085 9f ld a,x
1740 0086 a001 sub a,#1
1741 0088 b7ff ld _PrintUnsignedChar$L-1,a
1742 008a 2402 jrnc L02
1743 008c 3afe dec _PrintUnsignedChar$L-2
1744 008e L02:
1745 008e b600 ld a,_PrintUnsignedChar$L
1746 0090 90ae0a ld y,#10
1747 0093 cd0000 call c_cdivy
1749 0096 909f ld a,y
1750 0098 ab30 add a,#48
1751 009a bf01 ld c_x+1,x
1752 009c 92c700 ld [c_x.w],a
1753 ; 67 x /= 10;
1755 009f b600 ld a,_PrintUnsignedChar$L
1756 00a1 ae0a ld x,#10
1757 00a3 cd0000 call c_cdivx
1759 00a6 b700 ld _PrintUnsignedChar$L,a
1760 ; 68 } while( x );
1762 00a8 26d5 jrne L1611
1763 ; 70 SCI_PutString( s+1 );
1765 00aa b6ff ld a,_PrintUnsignedChar$L-1
1766 00ac befe ld x,_PrintUnsignedChar$L-2
1767 00ae 4c inc a
1768 00af 2601 jrne L22
1769 00b1 5c inc x
1770 00b2 L22:
1772 ; 71 }
1775 00b2 cc0205 jp _SCI_PutString
1829 ; 73 void PrintSignedChar( signed char x )
1829 ; 74 {
1830 switch .text
1832 xref.b _PrintSignedChar$L
1833 00b5 _PrintSignedChar:
1835 00b5 b700 ld _PrintSignedChar$L,a
1837 ; 75 char b[5], *s = b + 4;
1839 00b7 a6fd ld a,#_PrintSignedChar$L-3
1840 00b9 5f clr x
1841 00ba bffe ld _PrintSignedChar$L-2,x
1842 ; 77 *s-- = '\0';
1844 00bc bf00 ld c_x,x
1845 00be 97 ld x,a
1846 00bf 9f ld a,x
1847 00c0 a001 sub a,#1
1848 00c2 b7ff ld _PrintSignedChar$L-1,a
1849 00c4 2402 jrnc L62
1850 00c6 3afe dec _PrintSignedChar$L-2
1851 00c8 L62:
1852 00c8 4f clr a
1853 00c9 bf01 ld c_x+1,x
1854 00cb 92c700 ld [c_x.w],a
1855 ; 79 if (x >= 0)
1857 00ce 3d00 tnz _PrintSignedChar$L
1858 00d0 2b3e jrmi L7221
1859 00d2 L7121:
1860 ; 83 *s-- = (char)(x % 10 + '0');
1862 00d2 b6fe ld a,_PrintSignedChar$L-2
1863 00d4 b700 ld c_x,a
1864 00d6 beff ld x,_PrintSignedChar$L-1
1865 00d8 9f ld a,x
1866 00d9 a001 sub a,#1
1867 00db b7ff ld _PrintSignedChar$L-1,a
1868 00dd 2402 jrnc L03
1869 00df 3afe dec _PrintSignedChar$L-2
1870 00e1 L03:
1871 00e1 b600 ld a,_PrintSignedChar$L
1872 00e3 90ae0a ld y,#10
1873 00e6 cd0000 call c_sdivy
1875 00e9 909f ld a,y
1876 00eb ab30 add a,#48
1877 00ed bf01 ld c_x+1,x
1878 00ef 92c700 ld [c_x.w],a
1879 ; 84 x /= 10;
1881 00f2 b600 ld a,_PrintSignedChar$L
1882 00f4 ae0a ld x,#10
1883 00f6 cd0000 call c_sdivx
1885 00f9 b700 ld _PrintSignedChar$L,a
1886 ; 85 } while( x );
1888 00fb 26d5 jrne L7121
1889 ; 86 *s-- = '+';
1891 00fd b6fe ld a,_PrintSignedChar$L-2
1892 00ff b700 ld c_x,a
1893 0101 beff ld x,_PrintSignedChar$L-1
1894 0103 9f ld a,x
1895 0104 a001 sub a,#1
1896 0106 b7ff ld _PrintSignedChar$L-1,a
1897 0108 2402 jrnc L23
1898 010a 3afe dec _PrintSignedChar$L-2
1899 010c L23:
1900 010c a62b ld a,#43
1902 010e 203c jra L5221
1903 0110 L7221:
1904 ; 92 *s-- = (char)(x % 10 + '0');
1906 0110 b6fe ld a,_PrintSignedChar$L-2
1907 0112 b700 ld c_x,a
1908 0114 beff ld x,_PrintSignedChar$L-1
1909 0116 9f ld a,x
1910 0117 a001 sub a,#1
1911 0119 b7ff ld _PrintSignedChar$L-1,a
1912 011b 2402 jrnc L43
1913 011d 3afe dec _PrintSignedChar$L-2
1914 011f L43:
1915 011f b600 ld a,_PrintSignedChar$L
1916 0121 90ae0a ld y,#10
1917 0124 cd0000 call c_sdivy
1919 0127 909f ld a,y
1920 0129 ab30 add a,#48
1921 012b bf01 ld c_x+1,x
1922 012d 92c700 ld [c_x.w],a
1923 ; 93 x /= 10;
1925 0130 b600 ld a,_PrintSignedChar$L
1926 0132 ae0a ld x,#10
1927 0134 cd0000 call c_sdivx
1929 0137 b700 ld _PrintSignedChar$L,a
1930 ; 94 } while( x );
1932 0139 26d5 jrne L7221
1933 ; 95 *s-- = '-';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -