📄 lib_ascii.lst
字号:
###############################################################################
# #
# IAR ANSI C/C++ Compiler V6.10.2.52244/W32 for ARM 07/Aug/2011 12:10:25 #
# Copyright 1999-2010 IAR Systems AB. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = F:\stm32\我的程序\Micrium\Software\uC-LIB\lib_ascii.c #
# Command line = F:\stm32\我的程序\Micrium\Software\uC-LIB\lib_ascii.c #
# -D USE_STDPERIPH_DRIVER -D STM32F10X_CL -lCN #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
# t\ -o F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Fla #
# sh\Obj\ --no_cse --no_unroll --no_inline #
# --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian=little --cpu=Cortex-M3 #
# -e --fpu=None --dlib_config #
# D:\arm\INC\c\DLib_Config_Normal.h -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\APP\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ #
# -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP #
# \ST\CMSIS\CM3\CoreSupport\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \CMSIS\CM3\DeviceSupport\ST\STM32F10x\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \STM32F10x_StdPeriph_Driver\inc\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\uC #
# OS-II\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II #
# \..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uCO #
# S-II\Source\ -I F:\stm32\我的程序\Micrium\Software\EWARM #
# \OS-II\..\..\uC-LIB\ -I F:\stm32\我的程序\Micrium\Softwa #
# re\EWARM\OS-II\..\..\uC-LIB\Ports\ARM-Cortex-M3\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uC- #
# CPU\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\. #
# .\..\uC-CPU\ARM-Cortex-M3\IAR\ -On --use_c++_inline #
# List file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
# t\lib_ascii.lst #
# Object file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Obj #
# \lib_ascii.o #
# #
# #
###############################################################################
F:\stm32\我的程序\Micrium\Software\uC-LIB\lib_ascii.c
1 /*
2 *********************************************************************************************************
3 * uC/LIB
4 * CUSTOM LIBRARY MODULES
5 *
6 * (c) Copyright 2004-2011; Micrium, Inc.; Weston, FL
7 *
8 * All rights reserved. Protected by international copyright laws.
9 *
10 * uC/LIB is provided in source form to registered licensees ONLY. It is
11 * illegal to distribute this source code to any third party unless you receive
12 * written permission by an authorized Micrium representative. Knowledge of
13 * the source code may NOT be used to develop a similar product.
14 *
15 * Please help us continue to provide the Embedded community with the finest
16 * software available. Your honesty is greatly appreciated.
17 *
18 * You can contact us at www.micrium.com.
19 *********************************************************************************************************
20 */
21
22 /*
23 *********************************************************************************************************
24 *
25 * ASCII CHARACTER OPERATIONS
26 *
27 * Filename : lib_ascii.c
28 * Version : V1.35.00
29 * Programmer(s) : BAN
30 * ITJ
31 *********************************************************************************************************
32 * Note(s) : (1) NO compiler-supplied standard library functions are used in library or product software.
33 *
34 * (a) ALL standard library functions are implemented in the custom library modules :
35 *
36 * (1) \<Custom Library Directory>\lib_*.*
37 *
38 * (2) \<Custom Library Directory>\Ports\<cpu>\<compiler>\lib*_a.*
39 *
40 * where
41 * <Custom Library Directory> directory path for custom library software
42 * <cpu> directory name for specific processor (CPU)
43 * <compiler> directory name for specific compiler
44 *
45 * (b) Product-specific library functions are implemented in individual products.
46 *
47 *
48 * (2) (a) ECMA-6 '7-Bit coded Character Set' (6th edition), which corresponds to the
49 * 3rd edition of ISO 646, specifies several versions of a 7-bit character set :
50 *
51 * (1) THE GENERAL VERSION, which allows characters at 0x23 and 0x24 to be given a
52 * set alternate form and allows the characters 0x40, 0x5B, 0x5D, 0x60, 0x7B &
53 * 0x7D to be assigned a "unique graphic character" or to be declared as unused.
54 * All other characters are explicitly specified.
55 *
56 * (2) THE INTERNATIONAL REFERENCE VERSION, which explicitly specifies all characters
57 * in the 7-bit character set.
58 *
59 * (3) NATIONAL & APPLICATION-ORIENTED VERSIONS, which may be derived from the
60 * standard in specified ways.
61 *
62 * (b) The character set represented in this file reproduces the Internation Reference
63 * Version. This is identical to the 7-bit character set which occupies Unicode
64 * characters 0x0000 through 0x007F. The character names are taken from v5.0 of the
65 * Unicode specification, with certain abbreviations so that the resulting #define
66 * names will not violate ANSI C naming restriction :
67 *
68 * (1) For the Latin capital & lowercase letters, the name components 'LETTER_CAPITAL'
69 * & 'LETTER_SMALL' are replaced by 'UPPER' & 'LOWER', respectively.
70 *********************************************************************************************************
71 */
72
73
74 /*
75 *********************************************************************************************************
76 * INCLUDE FILES
77 *********************************************************************************************************
78 */
79
80 #define LIB_ASCII_MODULE
81 #include <lib_ascii.h>
82
83
84 /*$PAGE*/
85 /*
86 *********************************************************************************************************
87 * LOCAL DEFINES
88 *********************************************************************************************************
89 */
90
91
92 /*
93 *********************************************************************************************************
94 * LOCAL CONSTANTS
95 *********************************************************************************************************
96 */
97
98
99 /*
100 *********************************************************************************************************
101 * LOCAL DATA TYPES
102 *********************************************************************************************************
103 */
104
105
106 /*
107 *********************************************************************************************************
108 * LOCAL TABLES
109 *********************************************************************************************************
110 */
111
112
113 /*
114 *********************************************************************************************************
115 * LOCAL GLOBAL VARIABLES
116 *********************************************************************************************************
117 */
118
119
120 /*
121 *********************************************************************************************************
122 * LOCAL FUNCTION PROTOTYPES
123 *********************************************************************************************************
124 */
125
126
127 /*
128 *********************************************************************************************************
129 * LOCAL CONFIGURATION ERRORS
130 *********************************************************************************************************
131 */
132
133
134 /*$PAGE*/
135 /*
136 *********************************************************************************************************
137 * ASCII_IsAlpha()
138 *
139 * Description : Determine whether a character is an alphabetic character.
140 *
141 * Argument(s) : c Character to examine.
142 *
143 * Return(s) : DEF_YES, if character is an alphabetic character.
144 *
145 * DEF_NO, if character is NOT an alphabetic character.
146 *
147 * Caller(s) : Application.
148 *
149 * Note(s) : (1) ISO/IEC 9899:TC2, Section 7.4.1.2.(2) states that "isalpha() returns true only for the
150 * characters for which isupper() or islower() is true".
151 *********************************************************************************************************
152 */
153
\ In section .text, align 2, keep-with-next
154 CPU_BOOLEAN ASCII_IsAlpha (CPU_CHAR c)
155 {
\ ASCII_IsAlpha:
\ 00000000 0100 MOVS R1,R0
156 CPU_BOOLEAN alpha;
157
158
159 alpha = ASCII_IS_ALPHA(c);
\ 00000002 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 00000004 4129 CMP R1,#+65
\ 00000006 04D3 BCC.N ??ASCII_IsAlpha_0
\ 00000008 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 0000000A 5B29 CMP R1,#+91
\ 0000000C 01D2 BCS.N ??ASCII_IsAlpha_0
\ 0000000E 0120 MOVS R0,#+1
\ 00000010 00E0 B.N ??ASCII_IsAlpha_1
\ ??ASCII_IsAlpha_0:
\ 00000012 0020 MOVS R0,#+0
\ ??ASCII_IsAlpha_1:
\ 00000014 0128 CMP R0,#+1
\ 00000016 0AD0 BEQ.N ??ASCII_IsAlpha_2
\ 00000018 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 0000001A 6129 CMP R1,#+97
\ 0000001C 04D3 BCC.N ??ASCII_IsAlpha_3
\ 0000001E C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 00000020 7B29 CMP R1,#+123
\ 00000022 01D2 BCS.N ??ASCII_IsAlpha_3
\ 00000024 0120 MOVS R0,#+1
\ 00000026 00E0 B.N ??ASCII_IsAlpha_4
\ ??ASCII_IsAlpha_3:
\ 00000028 0020 MOVS R0,#+0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -