📄 userlib.txt
字号:
0005f4 e28f0f52 ADR r0,|L1.1860|
0005f8 ebfffffe BL Uart_Printf
;;;57 Manset_Usage();
0005fc ebfffffe BL Manset_Usage
;;;58
;;;59 while (1) {
000600 e1a00000 NOP
|L1.1540|
000604 e1a00000 NOP
;;;60 Uart_Printf(">> ");
000608 e28f0f57 ADR r0,|L1.1900|
00060c ebfffffe BL Uart_Printf
;;;61 Uart_GetString(sbuf);
000610 e59f0158 LDR r0,|L1.1904|
000614 ebfffffe BL Uart_GetString
;;;62
;;;63 if(*sbuf==NULL) continue;
000618 e59f0150 LDR r0,|L1.1904|
00061c e5d00000 LDRB r0,[r0,#0] ; sbuf
000620 e3500000 CMP r0,#0
000624 1a000000 BNE |L1.1580|
000628 eafffff5 B |L1.1540|
;;;64 else if(*sbuf=='P') Execute_Precmd();
|L1.1580|
00062c e59f013c LDR r0,|L1.1904|
000630 e5d00000 LDRB r0,[r0,#0] ; sbuf
000634 e3500050 CMP r0,#0x50
000638 1a000001 BNE |L1.1604|
00063c ebfffffe BL Execute_Precmd
000640 ea000035 B |L1.1820|
;;;65
;;;66 else if(*sbuf==ESC_KEY) break;
|L1.1604|
000644 e59f0124 LDR r0,|L1.1904|
000648 e5d00000 LDRB r0,[r0,#0] ; sbuf
00064c e3500071 CMP r0,#0x71
000650 1a000000 BNE |L1.1624|
000654 ea000031 B |L1.1824|
;;;67 else if(*sbuf==ESC_KEY) {
|L1.1624|
000658 e59f0110 LDR r0,|L1.1904|
00065c e5d00000 LDRB r0,[r0,#0] ; sbuf
000660 e3500071 CMP r0,#0x71
000664 1a000001 BNE |L1.1648|
;;;68 Manset_Usage();
000668 ebfffffe BL Manset_Usage
00066c ea00002a B |L1.1820|
;;;69 } else {
;;;70 Get_Cmd(sbuf);
|L1.1648|
000670 e59f00f8 LDR r0,|L1.1904|
000674 ebfffffe BL Get_Cmd
;;;71
;;;72 for(i=0; (int)(command_set[i][0])!=NULL; i++) {
000678 e3a05000 MOV r5,#0
|L1.1660|
00067c e51f00a8 LDR r0,|L1.1500|
000680 e7900185 LDR r0,[r0,r5,LSL #3]
000684 e3500000 CMP r0,#0
000688 0a000023 BEQ |L1.1820|
00068c ea000001 B |L1.1688|
|L1.1680|
000690 e2855001 ADD r5,r5,#1
000694 eafffff8 B |L1.1660|
;;;73 if(!strcmp((command_set[i][1]), scmd1)) {
|L1.1688|
000698 e51f10c4 LDR r1,|L1.1500|
00069c e0811185 ADD r1,r1,r5,LSL #3
0006a0 e5910004 LDR r0,[r1,#4]
0006a4 e51f1120 LDR r1,|L1.1420|
0006a8 ebfffffe BL strcmp
0006ac e3500000 CMP r0,#0
0006b0 1a000018 BNE |L1.1816|
;;;74 ((void (*)(void)) (command_set[i][0]))();
0006b4 e51f10e0 LDR r1,|L1.1500|
0006b8 e7910185 LDR r0,[r1,r5,LSL #3]
0006bc e1a0e00f MOV lr,pc
0006c0 e1a0f000 MOV pc,r0
;;;75 for(j=MAX_PRECMD_SIZE-1; j>0; j--) {
0006c4 e3a04009 MOV r4,#9
|L1.1736|
0006c8 e3540000 CMP r4,#0
0006cc 0a00000b BEQ |L1.1792|
0006d0 ea000001 B |L1.1756|
|L1.1748|
0006d4 e2444001 SUB r4,r4,#1
0006d8 eafffffa B |L1.1736|
;;;76 //if((int)pre_scmd[j][0]==NULL) continue;
;;;77 strcpy(pre_scmd[j], pre_scmd[j-1]);
|L1.1756|
0006dc e0842104 ADD r2,r4,r4,LSL #2
0006e0 e51f3140 LDR r3,|L1.1448|
0006e4 e0832202 ADD r2,r3,r2,LSL #4
0006e8 e2421050 SUB r1,r2,#0x50
0006ec e0842104 ADD r2,r4,r4,LSL #2
0006f0 e51f3150 LDR r3,|L1.1448|
0006f4 e0830202 ADD r0,r3,r2,LSL #4
0006f8 ebfffffe BL strcpy
;;;78 }
0006fc eafffff4 B |L1.1748|
;;;79
;;;80 strcpy(pre_scmd[j], sbuf);
|L1.1792|
000700 e0841104 ADD r1,r4,r4,LSL #2
000704 e51f2164 LDR r2,|L1.1448|
000708 e0820201 ADD r0,r2,r1,LSL #4
00070c e59f105c LDR r1,|L1.1904|
000710 ebfffffe BL strcpy
;;;81 break;
000714 ea000000 B |L1.1820|
;;;82 }
;;;83 }
|L1.1816|
000718 eaffffdc B |L1.1680|
;;;84 } // end of if(*sbuf==NULL)...
;;;85
;;;86 }
|L1.1820|
00071c eaffffb8 B |L1.1540|
;;;87
;;;88 }
|L1.1824|
000720 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.1828|
000724 756e614d DCB "Manu"
000728 72206c61 DCB "al r"
00072c 74696765 DCB "egit"
000730 73207265 DCB "er s"
000734 202e7465 DCB "et. "
000738 75297128 DCB "(q)u"
00073c 0a2e7469 DCB "it.\n"
000740 00000000 DCB "\0\0\0\0"
|L1.1860|
000744 67617355 DCB "Usag"
000748 293f2865 DCB "e(?)"
00074c 3e3e203a DCB ": >>"
000750 6f633c20 DCB " <co"
000754 6e616d6d DCB "mman"
000758 3c203e64 DCB "d> <"
00075c 3172706f DCB "opr1"
000760 3c28203e DCB "> (<"
000764 3272706f DCB "opr2"
000768 000a293e DCB ">)\n\0"
|L1.1900|
00076c 00203e3e DCB ">> \0"
|L1.1904|
000770 00000000 DCD ||.bss$2||
ENDP
Uart_AppendString PROC
;;;233 void Uart_AppendString(char *string)
;;;234 {
000774 e92d4070 STMFD sp!,{r4-r6,lr}
000778 e1a04000 MOV r4,r0
;;;235 char *string2 = string;
00077c e1a06004 MOV r6,r4
;;;236 char c;
;;;237
;;;238 string = (string + strlen(string));
000780 e1a00004 MOV r0,r4
000784 ebfffffe BL strlen
000788 e0804004 ADD r4,r0,r4
;;;239
;;;240 while((c = Uart_Getch())!='\r') {
00078c e1a00000 NOP
|L1.1936|
000790 ebfffffe BL Uart_Getch
000794 e1a05000 MOV r5,r0
000798 e350000d CMP r0,#0xd
00079c 0a00000b BEQ |L1.2000|
;;;241 if(c=='\b') {
0007a0 e3550008 CMP r5,#8
0007a4 1a000005 BNE |L1.1984|
;;;242 if( (int)string2 < (int)string ) {
0007a8 e1560004 CMP r6,r4
0007ac aa000006 BGE |L1.1996|
;;;243 Uart_Printf("\b \b");
0007b0 e28f002c ADR r0,|L1.2020|
0007b4 ebfffffe BL Uart_Printf
;;;244 string--;
0007b8 e2444001 SUB r4,r4,#1
0007bc ea000002 B |L1.1996|
;;;245 }
;;;246 } else {
;;;247 *string++ = c;
|L1.1984|
0007c0 e4c45001 STRB r5,[r4],#1
;;;248 Uart_SendByte(c);
0007c4 e1a00005 MOV r0,r5
0007c8 ebfffffe BL Uart_SendByte
;;;249 }
;;;250 }
|L1.1996|
0007cc eaffffef B |L1.1936|
;;;251 *string='\0';
|L1.2000|
0007d0 e3a00000 MOV r0,#0
0007d4 e5c40000 STRB r0,[r4,#0]
;;;252 Uart_SendByte('\n');
0007d8 e3a0000a MOV r0,#0xa
0007dc ebfffffe BL Uart_SendByte
;;;253 }
0007e0 e8bd8070 LDMFD sp!,{r4-r6,pc}
|L1.2020|
0007e4 00082008 DCB "\b \b\0"
ENDP
Memory_Dump PROC
;;;256 void Memory_Dump(void)
;;;257 {
0007e8 e92d4010 STMFD sp!,{r4,lr}
;;;258 int i;
;;;259
;;;260 Uart_Printf("memory dump\n");
0007ec e28f006c ADR r0,|L1.2144|
0007f0 ebfffffe BL Uart_Printf
;;;261 for(i=0; i<cmd3; i+=4) {
0007f4 e3a04000 MOV r4,#0
|L1.2040|
0007f8 e51f0260 LDR r0,|L1.1440|
0007fc e5900000 LDR r0,[r0,#0] ; cmd3
000800 e1540000 CMP r4,r0
000804 2a000014 BCS |L1.2140|
000808 ea000001 B |L1.2068|
|L1.2060|
00080c e2844004 ADD r4,r4,#4
000810 eafffff8 B |L1.2040|
;;;262 Uart_Printf(" %08xh: %08xh\n", (cmd2+i), *(U32 *)(cmd2+i));
|L1.2068|
000814 e51f0280 LDR r0,|L1.1436|
000818 e5900000 LDR r0,[r0,#0] ; cmd2
00081c e7902004 LDR r2,[r0,r4]
000820 e51f028c LDR r0,|L1.1436|
000824 e5900000 LDR r0,[r0,#0] ; cmd2
000828 e0801004 ADD r1,r0,r4
00082c e28f003c ADR r0,|L1.2160|
000830 ebfffffe BL Uart_Printf
;;;263 if(Uart_GetKey()!=NULL) {
000834 ebfffffe BL Uart_GetKey
000838 e3500000 CMP r0,#0
00083c 0a000005 BEQ |L1.2136|
;;;264 Uart_Printf("Break at %x\n", cmd2+i);
000840 e51f02ac LDR r0,|L1.1436|
000844 e5900000 LDR r0,[r0,#0] ; cmd2
000848 e0801004 ADD r1,r0,r4
00084c e28f002c ADR r0,|L1.2176|
000850 ebfffffe BL Uart_Printf
;;;265 break;
000854 ea000000 B |L1.2140|
;;;266 }
;;;267 }
|L1.2136|
000858 eaffffeb B |L1.2060|
;;;268 }
|L1.2140|
00085c e8bd8010 LDMFD sp!,{r4,pc}
|L1.2144|
000860 6f6d656d DCB "memo"
000864 64207972 DCB "ry d"
000868 0a706d75 DCB "ump\n"
00086c 00000000 DCB "\0\0\0\0"
|L1.2160|
000870 30252020 DCB " %0"
000874 3a687838 DCB "8xh:"
000878 38302520 DCB " %08"
00087c 000a6878 DCB "xh\n\0"
|L1.2176|
000880 61657242 DCB "Brea"
000884 7461206b DCB "k at"
000888 0a782520 DCB " %x\n"
00088c 00000000 DCB "\0\0\0\0"
ENDP
Multimem_Write PROC
;;;270 void Multimem_Write(void)
;;;271 {
000890 e92d4030 STMFD sp!,{r4,r5,lr}
000894 e24dd014 SUB sp,sp,#0x14
;;;272 U32 i, itmp;
;;;273 char tmps[20];
;;;274
;;;275 if(cmd2%4) cmd2=(cmd2/4)*4;
000898 e51f0304 LDR r0,|L1.1436|
00089c e5900000 LDR r0,[r0,#0] ; cmd2
0008a0 e3100003 TST r0,#3
0008a4 0a000005 BEQ |L1.2240|
0008a8 e51f0314 LDR r0,|L1.1436|
0008ac e5900000 LDR r0,[r0,#0] ; cmd2
0008b0 e1a00120 MOV r0,r0,LSR #2
0008b4 e1a00100 MOV r0,r0,LSL #2
0008b8 e51f1324 LDR r1,|L1.1436|
0008bc e5810000 STR r0,[r1,#0] ; cmd2
;;;276 Uart_Printf("Multiple memory write (q)uit.\n");
|L1.2240|
0008c0 e28f0064 ADR r0,|L1.2348|
0008c4 ebfffffe BL Uart_Printf
;;;277
;;;278 for(i=0; ; ) {
0008c8 e3a04000 MOV r4,#0
|L1.2252|
0008cc e1a00000 NOP
;;;279 Uart_Printf(" %08xh ? ", cmd2+i);
0008d0 e51f033c LDR r0,|L1.1436|
0008d4 e5900000 LDR r0,[r0,#0] ; cmd2
0008d8 e0801004 ADD r1,r0,r4
0008dc e28f0068 ADR r0,|L1.2380|
0008e0 ebfffffe BL Uart_Printf
;;;280 Uart_GetString(tmps);
0008e4 e1a0000d MOV r0,sp
0008e8 ebfffffe BL Uart_GetString
;;;281 if(*tmps=='q') break;
0008ec e5dd0000 LDRB r0,[sp,#0]
0008f0 e3500071 CMP r0,#0x71
0008f4 1a000000 BNE |L1.2300|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -