📄 userlib.txt
字号:
0008f8 ea000009 B |L1.2340|
;;;282
;;;283 itmp = Get_Num(tmps);
|L1.2300|
0008fc e1a0000d MOV r0,sp
000900 ebfffffe BL Get_Num
000904 e1a05000 MOV r5,r0
;;;284 if(itmp!=-1) *(U32 *)(cmd2+i) = itmp;
000908 e3750001 CMN r5,#1
00090c 0a000002 BEQ |L1.2332|
000910 e51f037c LDR r0,|L1.1436|
000914 e5900000 LDR r0,[r0,#0] ; cmd2
000918 e7805004 STR r5,[r0,r4]
;;;285
;;;286 i+=4;
|L1.2332|
00091c e2844004 ADD r4,r4,#4
;;;287 }
000920 eaffffe9 B |L1.2252|
;;;288 }
|L1.2340|
000924 e28dd014 ADD sp,sp,#0x14
000928 e8bd8030 LDMFD sp!,{r4,r5,pc}
|L1.2348|
00092c 746c754d DCB "Mult"
000930 656c7069 DCB "iple"
000934 6d656d20 DCB " mem"
000938 2079726f DCB "ory "
00093c 74697277 DCB "writ"
000940 71282065 DCB "e (q"
000944 74697529 DCB ")uit"
000948 00000a2e DCB ".\n\0\0"
|L1.2380|
00094c 30252020 DCB " %0"
000950 20687838 DCB "8xh "
000954 0000203f DCB "? \0\0"
ENDP
Fill_Memory PROC
;;;290 void Fill_Memory(void)
;;;291 {
000958 e92d4010 STMFD sp!,{r4,lr}
;;;292 U32 i, itmp;
;;;293 char tmps[20];
;;;294
;;;295 if(cmd2%4) cmd2=(cmd2/4)*4;
00095c e51f03c8 LDR r0,|L1.1436|
000960 e5900000 LDR r0,[r0,#0] ; cmd2
000964 e3100003 TST r0,#3
000968 0a000005 BEQ |L1.2436|
00096c e51f03d8 LDR r0,|L1.1436|
000970 e5900000 LDR r0,[r0,#0] ; cmd2
000974 e1a00120 MOV r0,r0,LSR #2
000978 e1a00100 MOV r0,r0,LSL #2
00097c e51f13e8 LDR r1,|L1.1436|
000980 e5810000 STR r0,[r1,#0] ; cmd2
;;;296 Uart_Printf("Fill memory[%08xh - %08xh with %xh].\n", cmd2, cmd2 + cmd3, cmd4);
|L1.2436|
000984 e51f03f0 LDR r0,|L1.1436|
000988 e5900000 LDR r0,[r0,#0] ; cmd2
00098c e51f13f4 LDR r1,|L1.1440|
000990 e5911000 LDR r1,[r1,#0] ; cmd3
000994 e0802001 ADD r2,r0,r1
000998 e51f03fc LDR r0,|L1.1444|
00099c e5903000 LDR r3,[r0,#0] ; cmd4
0009a0 e51f040c LDR r0,|L1.1436|
0009a4 e5901000 LDR r1,[r0,#0] ; cmd2
0009a8 e28f0060 ADR r0,|L1.2576|
0009ac ebfffffe BL Uart_Printf
;;;297
;;;298 for(i=0; i<cmd3; i+=4) {
0009b0 e3a04000 MOV r4,#0
|L1.2484|
0009b4 e51f041c LDR r0,|L1.1440|
0009b8 e5900000 LDR r0,[r0,#0] ; cmd3
0009bc e1540000 CMP r4,r0
0009c0 2a000011 BCS |L1.2572|
0009c4 ea000001 B |L1.2512|
|L1.2504|
0009c8 e2844004 ADD r4,r4,#4
0009cc eafffff8 B |L1.2484|
;;;299 *(U32 *)(cmd2+i) = cmd4;
|L1.2512|
0009d0 e51f0434 LDR r0,|L1.1444|
0009d4 e5900000 LDR r0,[r0,#0] ; cmd4
0009d8 e51f1444 LDR r1,|L1.1436|
0009dc e5911000 LDR r1,[r1,#0] ; cmd2
0009e0 e7810004 STR r0,[r1,r4]
;;;300 if(Uart_GetKey()!=NULL) {
0009e4 ebfffffe BL Uart_GetKey
0009e8 e3500000 CMP r0,#0
0009ec 0a000005 BEQ |L1.2568|
;;;301 Uart_Printf("Break at %x\n", cmd2+i);
0009f0 e51f045c LDR r0,|L1.1436|
0009f4 e5900000 LDR r0,[r0,#0] ; cmd2
0009f8 e0801004 ADD r1,r0,r4
0009fc e24f0f61 ADR r0,|L1.2176|
000a00 ebfffffe BL Uart_Printf
;;;302 break;
000a04 ea000000 B |L1.2572|
;;;303 }
;;;304 }
|L1.2568|
000a08 eaffffee B |L1.2504|
;;;305
;;;306 }
|L1.2572|
000a0c e8bd8010 LDMFD sp!,{r4,pc}
|L1.2576|
000a10 6c6c6946 DCB "Fill"
000a14 6d656d20 DCB " mem"
000a18 5b79726f DCB "ory["
000a1c 78383025 DCB "%08x"
000a20 202d2068 DCB "h - "
000a24 78383025 DCB "%08x"
000a28 69772068 DCB "h wi"
000a2c 25206874 DCB "th %"
000a30 2e5d6878 DCB "xh]."
000a34 0000000a DCB "\n\0\0\0"
ENDP
Halfword_Read PROC
;;;308 void Halfword_Read(void)
;;;309 {
000a38 e92d4008 STMFD sp!,{r3,lr}
;;;310 Uart_Printf(" [%08xh:%04xh]\n", cmd2, *(U16 *)cmd2);
000a3c e51f04a8 LDR r0,|L1.1436|
000a40 e5900000 LDR r0,[r0,#0] ; cmd2
000a44 e1d020b0 LDRH r2,[r0,#0]
000a48 e51f04b4 LDR r0,|L1.1436|
000a4c e5901000 LDR r1,[r0,#0] ; cmd2
000a50 e28f0004 ADR r0,|L1.2652|
000a54 ebfffffe BL Uart_Printf
;;;311 }
000a58 e8bd8008 LDMFD sp!,{r3,pc}
|L1.2652|
000a5c 255b2020 DCB " [%"
000a60 68783830 DCB "08xh"
000a64 3430253a DCB ":%04"
000a68 0a5d6878 DCB "xh]\n"
000a6c 00000000 DCB "\0\0\0\0"
ENDP
Halfword_Write PROC
;;;313 void Halfword_Write(void)
;;;314 {
000a70 e92d4008 STMFD sp!,{r3,lr}
;;;315 *(U16 *)cmd2 = (U16)cmd3;
000a74 e51f04dc LDR r0,|L1.1440|
000a78 e5900000 LDR r0,[r0,#0] ; cmd3
000a7c e51f14e8 LDR r1,|L1.1436|
000a80 e5911000 LDR r1,[r1,#0] ; cmd2
000a84 e1c100b0 STRH r0,[r1,#0]
;;;316 Uart_Printf(" [%08xh<-%04xh]\n", cmd2, (U16)cmd3);
000a88 e51f04f0 LDR r0,|L1.1440|
000a8c e5900000 LDR r0,[r0,#0] ; cmd3
000a90 e1a02800 MOV r2,r0,LSL #16
000a94 e1a02822 MOV r2,r2,LSR #16
000a98 e51f0504 LDR r0,|L1.1436|
000a9c e5901000 LDR r1,[r0,#0] ; cmd2
000aa0 e28f0004 ADR r0,|L1.2732|
000aa4 ebfffffe BL Uart_Printf
;;;317 }
000aa8 e8bd8008 LDMFD sp!,{r3,pc}
|L1.2732|
000aac 255b2020 DCB " [%"
000ab0 68783830 DCB "08xh"
000ab4 30252d3c DCB "<-%0"
000ab8 5d687834 DCB "4xh]"
000abc 0000000a DCB "\n\0\0\0"
ENDP
Halfword_Write_Multi PROC
;;;321 void Halfword_Write_Multi(void)
;;;322 {
000ac0 e92d4010 STMFD sp!,{r4,lr}
;;;323 char *string;
;;;324 short int indata;
;;;325
;;;326 Uart_Printf(" Addr:%08xh\n", cmd2);
000ac4 e51f0530 LDR r0,|L1.1436|
000ac8 e5901000 LDR r1,[r0,#0] ; cmd2
000acc e28f0050 ADR r0,|L1.2852|
000ad0 ebfffffe BL Uart_Printf
;;;327
;;;328 while(1) {
000ad4 e1a00000 NOP
|L1.2776|
000ad8 e1a00000 NOP
;;;329 Uart_Printf(" data: ");
000adc e28f0050 ADR r0,|L1.2868|
000ae0 ebfffffe BL Uart_Printf
;;;330 indata = Uart_GetIntNum();
000ae4 ebfffffe BL Uart_GetIntNum
000ae8 e1a04800 MOV r4,r0,LSL #16
000aec e1a04844 MOV r4,r4,ASR #16
;;;331 if(indata==-1) break;
000af0 e3740001 CMN r4,#1
000af4 1a000000 BNE |L1.2812|
000af8 ea000008 B |L1.2848|
;;;332 *(U16 *)cmd2 = indata;
|L1.2812|
000afc e51f0568 LDR r0,|L1.1436|
000b00 e5900000 LDR r0,[r0,#0] ; cmd2
000b04 e1c040b0 STRH r4,[r0,#0]
;;;333 Uart_Printf(" [%08xh<-%04xh]\n", cmd2, indata);
000b08 e1a02004 MOV r2,r4
000b0c e51f0578 LDR r0,|L1.1436|
000b10 e5901000 LDR r1,[r0,#0] ; cmd2
000b14 e24f0070 ADR r0,|L1.2732|
000b18 ebfffffe BL Uart_Printf
;;;334 }
000b1c eaffffed B |L1.2776|
;;;335
;;;336 }
|L1.2848|
000b20 e8bd8010 LDMFD sp!,{r4,pc}
|L1.2852|
000b24 64412020 DCB " Ad"
000b28 253a7264 DCB "dr:%"
000b2c 68783830 DCB "08xh"
000b30 0000000a DCB "\n\0\0\0"
|L1.2868|
000b34 61642020 DCB " da"
000b38 203a6174 DCB "ta: "
000b3c 00000000 DCB "\0\0\0\0"
ENDP
Word_Write PROC
;;;338 void Word_Write(void)
;;;339 {
000b40 e92d4008 STMFD sp!,{r3,lr}
;;;340 if(cmd2%4) cmd2=(cmd2/4)*4;
000b44 e51f05b0 LDR r0,|L1.1436|
000b48 e5900000 LDR r0,[r0,#0] ; cmd2
000b4c e3100003 TST r0,#3
000b50 0a000005 BEQ |L1.2924|
000b54 e51f05c0 LDR r0,|L1.1436|
000b58 e5900000 LDR r0,[r0,#0] ; cmd2
000b5c e1a00120 MOV r0,r0,LSR #2
000b60 e1a00100 MOV r0,r0,LSL #2
000b64 e51f15d0 LDR r1,|L1.1436|
000b68 e5810000 STR r0,[r1,#0] ; cmd2
;;;341 *(U32 *)cmd2 = (U32)cmd3;
|L1.2924|
000b6c e51f05d4 LDR r0,|L1.1440|
000b70 e5900000 LDR r0,[r0,#0] ; cmd3
000b74 e51f15e0 LDR r1,|L1.1436|
000b78 e5911000 LDR r1,[r1,#0] ; cmd2
000b7c e5810000 STR r0,[r1,#0]
;;;342 Uart_Printf(" [%08xh<-%08xh]\n", cmd2, cmd3);
000b80 e51f05e8 LDR r0,|L1.1440|
000b84 e5902000 LDR r2,[r0,#0] ; cmd3
000b88 e51f05f4 LDR r0,|L1.1436|
000b8c e5901000 LDR r1,[r0,#0] ; cmd2
000b90 e28f0004 ADR r0,|L1.2972|
000b94 ebfffffe BL Uart_Printf
;;;343
;;;344 }
000b98 e8bd8008 LDMFD sp!,{r3,pc}
|L1.2972|
000b9c 255b2020 DCB " [%"
000ba0 68783830 DCB "08xh"
000ba4 30252d3c DCB "<-%0"
000ba8 5d687838 DCB "8xh]"
000bac 0000000a DCB "\n\0\0\0"
ENDP
Word_Write_Or PROC
;;;346 void Word_Write_Or(void)
;;;347 {
000bb0 e92d4008 STMFD sp!,{r3,lr}
;;;348 if(cmd2%4) cmd2=(cmd2/4)*4;
000bb4 e51f0620 LDR r0,|L1.1436|
000bb8 e5900000 LDR r0,[r0,#0] ; cmd2
000bbc e3100003 TST r0,#3
000bc0 0a000005 BEQ |L1.3036|
000bc4 e51f0630 LDR r0,|L1.1436|
000bc8 e5900000 LDR r0,[r0,#0] ; cmd2
000bcc e1a00120 MOV r0,r0,LSR #2
000bd0 e1a00100 MOV r0,r0,LSL #2
000bd4 e51f1640 LDR r1,|L1.1436|
000bd8 e5810000 STR r0,[r1,#0] ; cmd2
;;;349 *(U32 *)cmd2 |= (U32)cmd3;
|L1.3036|
000bdc e51f0648 LDR r0,|L1.1436|
000be0 e5900000 LDR r0,[r0,#0] ; cmd2
000be4 e5900000 LDR r0,[r0,#0]
000be8 e51f1650 LDR r1,|L1.1440|
000bec e5911000 LDR r1,[r1,#0] ; cmd3
000bf0 e1800001 ORR r0,r0,r1
000bf4 e51f1660 LDR r1,|L1.1436|
000bf8 e5911000 LDR r1,[r1,#0] ; cmd2
000bfc e5810000 STR r0,[r1,#0]
;;;350 Uart_Printf(" [%08xh |= %08xh]\n", cmd2, cmd3);
000c00 e51f0668 LDR r0,|L1.1440|
000c04 e5902000 LDR r2,[r0,#0] ; cmd3
000c08 e51f0674 LDR r0,|L1.1436|
000c0c e5901000 LDR r1,[r0,#0] ; cmd2
000c10 e28f0004 ADR r0,|L1.3100|
000c14 ebfffffe BL Uart_Printf
;;;351 }
000c18 e8bd8008 LDMFD sp!,{r3,pc}
|L1.3100|
000c1c 255b2020 DCB " [%"
000c20 68783830 DCB "08xh"
000c24 203d7c20 DCB " |= "
000c28 78383025 DCB "%08x"
000c2c 000a5d68 DCB "h]\n\0"
ENDP
Word_Read PROC
;;;353 void Word_Read(void)
;;;354 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -