📄 userlib.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\Userlib.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Manset_Usage PROC
;;;33 void Manset_Usage(void)
;;;34 {
|L1.0|
000000 e92d4008 STMFD sp!,{r3,lr}
;;;35 int i;
;;;36
;;;37 Uart_Printf("dump:memory dump(ex:dump addr length)\n");
000004 e28f004c ADR r0,|L1.88|
000008 ebfffffe BL Uart_Printf
;;;38 Uart_Printf("mw:multiple write.\n");
00000c e28f006c ADR r0,|L1.128|
000010 ebfffffe BL Uart_Printf
;;;39 Uart_Printf("hr:halfword read.\n");
000014 e28f0078 ADR r0,|L1.148|
000018 ebfffffe BL Uart_Printf
;;;40 Uart_Printf("hw:halfword write.\n");
00001c e28f0084 ADR r0,|L1.168|
000020 ebfffffe BL Uart_Printf
;;;41 Uart_Printf("hwm:halfword write multi.\n");
000024 e28f0090 ADR r0,|L1.188|
000028 ebfffffe BL Uart_Printf
;;;42 Uart_Printf("w:word write.\n");
00002c e28f00a4 ADR r0,|L1.216|
000030 ebfffffe BL Uart_Printf
;;;43 Uart_Printf("ow:word write with OR logic.\n");
000034 e28f00ac ADR r0,|L1.232|
000038 ebfffffe BL Uart_Printf
;;;44 Uart_Printf("r:word read.\n");
00003c e28f00c4 ADR r0,|L1.264|
000040 ebfffffe BL Uart_Printf
;;;45 Uart_Printf("fi:memory fill(ex:fi addr length value).\n");
000044 e28f00cc ADR r0,|L1.280|
000048 ebfffffe BL Uart_Printf
;;;46 Uart_Printf("P: execute previous command.\n");
00004c e28f00f0 ADR r0,|L1.324|
000050 ebfffffe BL Uart_Printf
;;;47
;;;48 }
000054 e8bd8008 LDMFD sp!,{r3,pc}
|L1.88|
000058 706d7564 DCB "dump"
00005c 6d656d3a DCB ":mem"
000060 2079726f DCB "ory "
000064 706d7564 DCB "dump"
000068 3a786528 DCB "(ex:"
00006c 706d7564 DCB "dump"
000070 64646120 DCB " add"
000074 656c2072 DCB "r le"
000078 6874676e DCB "ngth"
00007c 00000a29 DCB ")\n\0\0"
|L1.128|
000080 6d3a776d DCB "mw:m"
000084 69746c75 DCB "ulti"
000088 20656c70 DCB "ple "
00008c 74697277 DCB "writ"
000090 000a2e65 DCB "e.\n\0"
|L1.148|
000094 683a7268 DCB "hr:h"
000098 77666c61 DCB "alfw"
00009c 2064726f DCB "ord "
0000a0 64616572 DCB "read"
0000a4 00000a2e DCB ".\n\0\0"
|L1.168|
0000a8 683a7768 DCB "hw:h"
0000ac 77666c61 DCB "alfw"
0000b0 2064726f DCB "ord "
0000b4 74697277 DCB "writ"
0000b8 000a2e65 DCB "e.\n\0"
|L1.188|
0000bc 3a6d7768 DCB "hwm:"
0000c0 666c6168 DCB "half"
0000c4 64726f77 DCB "word"
0000c8 69727720 DCB " wri"
0000cc 6d206574 DCB "te m"
0000d0 69746c75 DCB "ulti"
0000d4 00000a2e DCB ".\n\0\0"
|L1.216|
0000d8 6f773a77 DCB "w:wo"
0000dc 77206472 DCB "rd w"
0000e0 65746972 DCB "rite"
0000e4 00000a2e DCB ".\n\0\0"
|L1.232|
0000e8 773a776f DCB "ow:w"
0000ec 2064726f DCB "ord "
0000f0 74697277 DCB "writ"
0000f4 69772065 DCB "e wi"
0000f8 4f206874 DCB "th O"
0000fc 6f6c2052 DCB "R lo"
000100 2e636967 DCB "gic."
000104 0000000a DCB "\n\0\0\0"
|L1.264|
000108 6f773a72 DCB "r:wo"
00010c 72206472 DCB "rd r"
000110 2e646165 DCB "ead."
000114 0000000a DCB "\n\0\0\0"
|L1.280|
000118 6d3a6966 DCB "fi:m"
00011c 726f6d65 DCB "emor"
000120 69662079 DCB "y fi"
000124 65286c6c DCB "ll(e"
000128 69663a78 DCB "x:fi"
00012c 64646120 DCB " add"
000130 656c2072 DCB "r le"
000134 6874676e DCB "ngth"
000138 6c617620 DCB " val"
00013c 2e296575 DCB "ue)."
000140 0000000a DCB "\n\0\0\0"
|L1.324|
000144 65203a50 DCB "P: e"
000148 75636578 DCB "xecu"
00014c 70206574 DCB "te p"
000150 69766572 DCB "revi"
000154 2073756f DCB "ous "
000158 6d6d6f63 DCB "comm"
00015c 2e646e61 DCB "and."
000160 0000000a DCB "\n\0\0\0"
ENDP
Get_Num PROC
;;;148 U32 Get_Num(char *string)
;;;149 {
000164 e92d43f8 STMFD sp!,{r3-r9,lr}
000168 e1a04000 MOV r4,r0
;;;150 int base=10;
00016c e3a0800a MOV r8,#0xa
;;;151 int minus=0;
000170 e3a09000 MOV r9,#0
;;;152 int lastIndex;
;;;153 int result=0;
000174 e3a05000 MOV r5,#0
;;;154 int i;
;;;155
;;;156 if(string[0]=='-')
000178 e5d40000 LDRB r0,[r4,#0]
00017c e350002d CMP r0,#0x2d
000180 1a000001 BNE |L1.396|
;;;157 {
;;;158 minus=1;
000184 e3a09001 MOV r9,#1
;;;159 string++;
000188 e2844001 ADD r4,r4,#1
;;;160 }
;;;161
;;;162 if(string[0]=='0' && (string[1]=='x' || string[1]=='X'))
|L1.396|
00018c e5d40000 LDRB r0,[r4,#0]
000190 e3500030 CMP r0,#0x30
000194 1a000007 BNE |L1.440|
000198 e5d40001 LDRB r0,[r4,#1]
00019c e3500078 CMP r0,#0x78
0001a0 0a000002 BEQ |L1.432|
0001a4 e5d40001 LDRB r0,[r4,#1]
0001a8 e3500058 CMP r0,#0x58
0001ac 1a000001 BNE |L1.440|
;;;163 {
;;;164 base=16;
|L1.432|
0001b0 e3a08010 MOV r8,#0x10
;;;165 string+=2;
0001b4 e2844002 ADD r4,r4,#2
;;;166 }
;;;167
;;;168 lastIndex=strlen(string)-1;
|L1.440|
0001b8 e1a00004 MOV r0,r4
0001bc ebfffffe BL strlen
0001c0 e2407001 SUB r7,r0,#1
;;;169 if(lastIndex<0)return -1;
0001c4 e3570000 CMP r7,#0
0001c8 aa000001 BGE |L1.468|
0001cc e3e00000 MVN r0,#0
;;;170
;;;171 if( string[lastIndex]=='h' || string[lastIndex]=='H' )
;;;172 {
;;;173 base=16;
;;;174 string[lastIndex]=0;
;;;175 lastIndex--;
;;;176 }
;;;177
;;;178 if(base==10)
;;;179 {
;;;180 result=atoi(string);
;;;181 result=minus ? (-1*result):result;
;;;182 }
;;;183 else
;;;184 {
;;;185 for(i=0;i<=lastIndex;i++)
;;;186 {
;;;187 if(isalpha(string[i]))
;;;188 {
;;;189 if(isupper(string[i]))
;;;190 result=(result<<4)+string[i]-'A'+10;
;;;191 else
;;;192 result=(result<<4)+string[i]-'a'+10;
;;;193 }
;;;194 else
;;;195 {
;;;196 result=(result<<4)+string[i]-'0';
;;;197 }
;;;198 }
;;;199 result=minus ? (-1*result):result;
;;;200 }
;;;201 return result;
;;;202 }
|L1.464|
0001d0 e8bd83f8 LDMFD sp!,{r3-r9,pc}
|L1.468|
0001d4 e7d40007 LDRB r0,[r4,r7] ;171
0001d8 e3500068 CMP r0,#0x68 ;171
0001dc 0a000002 BEQ |L1.492| ;171
0001e0 e7d40007 LDRB r0,[r4,r7] ;171
0001e4 e3500048 CMP r0,#0x48 ;171
0001e8 1a000003 BNE |L1.508| ;171
|L1.492|
0001ec e3a08010 MOV r8,#0x10 ;173
0001f0 e3a00000 MOV r0,#0 ;174
0001f4 e7c40007 STRB r0,[r4,r7] ;174
0001f8 e2477001 SUB r7,r7,#1 ;175
|L1.508|
0001fc e358000a CMP r8,#0xa ;178
000200 1a000009 BNE |L1.556| ;178
000204 e1a00004 MOV r0,r4 ;180
000208 ebfffffe BL atoi ;180
00020c e1a05000 MOV r5,r0 ;180
000210 e3590000 CMP r9,#0 ;181
000214 0a000001 BEQ |L1.544| ;181
000218 e2650000 RSB r0,r5,#0 ;181
00021c ea000000 B |L1.548| ;181
|L1.544|
000220 e1a00005 MOV r0,r5 ;181
|L1.548|
000224 e1a05000 MOV r5,r0 ;181
000228 ea00001f B |L1.684| ;181
|L1.556|
00022c e3a06000 MOV r6,#0 ;185
|L1.560|
000230 e1560007 CMP r6,r7 ;185
000234 ca000016 BGT |L1.660| ;185
000238 ea000001 B |L1.580| ;185
|L1.572|
00023c e2866001 ADD r6,r6,#1 ;185
000240 eafffffa B |L1.560| ;185
|L1.580|
000244 e7d40006 LDRB r0,[r4,r6] ;187
000248 ebfffffe BL isalpha ;187
00024c e3500000 CMP r0,#0 ;187
000250 0a00000b BEQ |L1.644| ;187
000254 e7d40006 LDRB r0,[r4,r6] ;189
000258 ebfffffe BL isupper ;189
00025c e3500000 CMP r0,#0 ;189
000260 0a000003 BEQ |L1.628| ;189
000264 e7d40006 LDRB r0,[r4,r6] ;190
000268 e0800205 ADD r0,r0,r5,LSL #4 ;190
00026c e2405037 SUB r5,r0,#0x37 ;190
000270 ea000006 B |L1.656| ;190
|L1.628|
000274 e7d40006 LDRB r0,[r4,r6] ;192
000278 e0800205 ADD r0,r0,r5,LSL #4 ;192
00027c e2405057 SUB r5,r0,#0x57 ;192
000280 ea000002 B |L1.656| ;192
|L1.644|
000284 e7d40006 LDRB r0,[r4,r6] ;196
000288 e0800205 ADD r0,r0,r5,LSL #4 ;196
00028c e2405030 SUB r5,r0,#0x30 ;196
|L1.656|
000290 eaffffe9 B |L1.572| ;198
|L1.660|
000294 e3590000 CMP r9,#0 ;199
000298 0a000001 BEQ |L1.676| ;199
00029c e2650000 RSB r0,r5,#0 ;199
0002a0 ea000000 B |L1.680| ;199
|L1.676|
0002a4 e1a00005 MOV r0,r5 ;199
|L1.680|
0002a8 e1a05000 MOV r5,r0 ;199
|L1.684|
0002ac e1a00005 MOV r0,r5 ;201
0002b0 eaffffc6 B |L1.464| ;201
ENDP
Get_Cmd PROC
;;;93 void Get_Cmd(char incmd[])
;;;94 {
0002b4 e92d41f0 STMFD sp!,{r4-r8,lr}
0002b8 e1a06000 MOV r6,r0
;;;95 int cmd_level=0, i, j, overlap=0;
0002bc e3a07000 MOV r7,#0
0002c0 e3a08000 MOV r8,#0
;;;96
;;;97 scmd1[0]='\0';
0002c4 e3a00000 MOV r0,#0
0002c8 e59f12bc LDR r1,|L1.1420|
0002cc e5c10000 STRB r0,[r1,#0] ; scmd1
;;;98 scmd2[0]='\0';
0002d0 e3a00000 MOV r0,#0
0002d4 e59f12b4 LDR r1,|L1.1424|
0002d8 e5c10000 STRB r0,[r1,#0] ; scmd2
;;;99 scmd3[0]='\0';
0002dc e3a00000 MOV r0,#0
0002e0 e59f12ac LDR r1,|L1.1428|
0002e4 e5c10000 STRB r0,[r1,#0] ; scmd3
;;;100 scmd4[0]='\0';
0002e8 e3a00000 MOV r0,#0
0002ec e59f12a4 LDR r1,|L1.1432|
0002f0 e5c10000 STRB r0,[r1,#0] ; scmd4
;;;101
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -