韦东山移植学习—-007 dis文件(反汇编分析)

韦东山移植学习—-007 dis文件(反汇编分析)33f80000 e3a00453 mov r0 0x 33f80000 来源于链接文件 ldsboot elf fileformatel littlearmDis text 33f80000 lt start gt a 关看门狗 33f80000 e3a

linux生成反汇编命令

arm–linux-objdump -D uboot >uboot.dis
一. arm-linux-objdump常用来显示二进制文件信息,常用来查看反汇编代码
二. 常用选项:
1.-b bfdname 指定目标码格式
2.—disassemble或者-d 反汇编可执行段
3.—dissassemble-all或者-D 反汇编所有段
4.-EB,-EL指定字节序
5.—file-headers或者-f 显示文件的整体头部摘要信息
6.—section-headers,–headers或者-h 显示目标文件中各个段的头部摘要信
7.—info 或者-I 显示支持的目标文件格式和CPU架构
8.—section=name或者-j name显示指定section 的信息
9.—architecture=machine或者-m machine 指定反汇编目标文件时使用的架构










在这里插入图片描述

boot_elf: file format elf32-littlearm

Disassembly of section .text:

33f80084

: //sdram 表格存放着各个寄存器地址

33f80084: .word 0x
33f80088: 00000700 .word 0x00000700
33f8008c: 00000700 .word 0x00000700
33f80090: 00000700 .word 0x00000700
33f80094: 00000700 .word 0x00000700
33f80098: 00000700 .word 0x00000700
33f8009c: 00000700 .word 0x00000700
33f800a0: 00018005 .word 0x00018005
33f800a4: 00018005 .word 0x00018005
33f800a8: 008c04f4 .word 0x008c04f4
33f800ac: 000000b1 .word 0x000000b1
33f800b0: 00000030 .word 0x00000030
33f800b4: 00000030 .word 0x00000030
33f800b8: 4c000014 .word 0x4c000014
33f800bc: 4c000004 .word 0x4c000004
33f800c0: 0005c011 .word 0x0005c011
33f800c4: 33f80000 .word 0x33f80000
33f800c8: 33f808b8 .word 0x33f808b8
33f800cc: 33f80080 .word 0x33f80080
33f800d0: 33f80714 .word 0x33f80714
/ 判断Nor还是Nand/
33f800d4 :
33f800d4: e59f201c ldr r2, [pc, #28] ; 33f800f8

//r2 = 0x;

33f800d8: e3a00000 mov r0, #0 ; //r0=0
33f800dc: e ldr r1, [r0]//r1=0
33f800e0: e str r2, [r0]//r0=0x
33f800e4: e ldr r3, [r0]//r3=0x
33f800e8: e cmp r3, r2
33f800ec: addne r0, r0, #1 ; 0x1 // 如果cmp 不等于,则相加置i
33f800f0: 0 streq r1, [r0] //如果相等,则为0
33f800f4: e12fff1e bx lr
33f800f8: .word 0x //函数调用的,最后用bx lr 返回
/* 函数返回和异常返回都可能用到了BX LR
函数调用的最后使用BX LR 返回,LR对应的是BL functionName的下一条指令的地址(当然如果函数中再用到了BL指令,
需要先push LR,等返回了以后再POP LR)
异常返回如果使用BX LR的形式,LR的值只不过定义了一下返回时从哪个堆栈出栈(PSP or MSP),已经没有地址的意义
了,具体返回地址都是根据选择的堆栈弹出 的PC值决定的。
如果果LR的值不是0xffffxxxx类型的,则PC跳至LR[31:1],而根据LR[0:0]则决定跳转后处理器进入的状态。
如果LR[0:0]=1,则进入Thumb状态,否则进入ARM状态。 在CM3中不支持ARM状态,所以LR[0:0]必须是1——也就是LR必须是奇数
在CM3中,如果以0xffff开头则有特殊的含义,命名为EXC_RETURN,它指示正在从异常返回,并决定返回的方式,
在《Cortex-M3权威指南》中有重点介绍
*/
33f800fc

:

33f800fc: e59f301c ldr r3, [pc, #28] ; 33f80120

//将r3 =33f808b8 :

33f80100: e59f101c ldr r1, [pc, #28] ; 33f80124


33f80104: e cmp r3, r1
33f80108: 212fff1e bxcs lr //cs:大于/等于
33f8010c: e3a02000 mov r2, #0 ; 0x0 //r2 =0
33f80110: e str r2, [r3], #4 //[r2]->[r3] r3=r3+4
33f80114: e cmp r3, r1
33f80118: 3afffffc bcc 33f80110

//cc:小于

33f8011c: e12fff1e bx lr
33f80120: 33f808b8 .word 0x33f808b8
33f80124: 33f808bc .word 0x33f808bc //由于只有一个bss 初始化为0/或未初始化



























































33f80128

:

33f80128: e3a0344e mov r3, # ; 0x4e000000
33f8012c: e3a02c01 mov r2, #256 ; 0x100 //NFCONF = (TACLS<<12) | (TWRPH0<<8) | (TWRPH1<<4);
33f80130: e3a01013 mov r1, #19 ; 0x13 //NFCONT = (1<<4)|(1<<1)|(1<<0);
33f80134: e str r2, [r3]
33f80138: e str r1, [r3, #4] // ;将r1中的值存到r3+4所指定的地址中
33f8013c: e12fff1e bx lr






33f80140

:

33f80140: e3a0244e mov r2, # ; 0x4e000000
33f80144: e ldr r3, [r2, #4]
33f80148: e3c33002 bic r3, r3, #2 ; 0x2 // r3 & ~1==>置0
/ BIC指令将Rn 的值与操作数operand2 的反码按位逻辑"与",结果存放到目的寄存器Rd 中。
指令示例:BIC R0,R0,#0x0F ;将R0最低4位清零,其余位不变。
/
33f8014c: e str r3, [r2, #4]
33f80150: e12fff1e bx lr






33f80154

:

33f80154: e3a0244e mov r2, # ; // 错误的:[r2]=0x4e000000 ,因为是复杂立即数,伪汇编指令,应该写入地址才对 r2=0x4e000000
33f80158: e ldr r3, [r2, #4] // [r2+4]->[r3]
33f8015c: e orr r3, r3, #2 ; 0x2
/ ORR{cond}{S} Rd,Rn,operand2 ORR指令将操作数operand2 与Rn 的值按位逻辑"或",结果存放到目的寄存器Rd 中
ORR R0,R0,#0x0F ;R0=R0|0x0F,将R0最低4位置1,其余位不变
/
33f80160: e str r3, [r2, #4] // [r3]->[r2+4]
33f80164: e12fff1e bx lr
———————???————————————–
33f80168

:

33f80168: e24dd008 sub sp, sp, #8 ; 0x8 // sp 寄存器的值减 8,即向下移动 8 个字节 ??这样的作用?
33f8016c: e3a0344e mov r3, # ; 0x4e000000
33f80170: e3a02000 mov r2, #0 ; 0x0
33f80174: e5c30008 strb r0, [r3, #8] //[r0] -> [r3+8]
/ STRB指令用于从源寄存器中将一个8位的字节数据传送到存储器中。该字节数据为源寄存器中的低8位。
解释:STR R0,[R1],#8 ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1。
STR R0,[R1,#8] ;将R0中的字数据写入以R1+8为地址的存储器中。

/
33f80178: e58d2004 str r2, [sp, #4]
33f8017c: e59d3004 ldr r3, [sp, #4]
33f80180: e cmp r3, #9 ; 0x9
33f80184: ca000005 bgt 33f801a0


33f80188: e59d3004 ldr r3, [sp, #4]
33f8018c: e add r3, r3, #1 ; 0x1
33f80190: e58d3004 str r3, [sp, #4]
33f80194: e59d2004 ldr r2, [sp, #4]
33f80198: e cmp r2, #9 ; 0x9
33f8019c: dafffff9 ble 33f80188


33f801a0: e28dd008 add sp, sp, #8 ; 0x8
33f801a4: e12fff1e bx lr
——————-???——————————————–
33f801a8

:

33f801a8: e20010ff and r1, r0, #255 ; 0xff
33f801ac: e24dd008 sub sp, sp, #8 ; 0x8
33f801b0: e3a0344e mov r3, # ; 0x4e000000
33f801b4: e3a02000 mov r2, #0 ; 0x0
33f801b8: e5c3100c strb r1, [r3, #12]
33f801bc: e58d2004 str r2, [sp, #4]
33f801c0: e59d3004 ldr r3, [sp, #4]
33f801c4: e1a01a80 lsl r1, r0, #21
33f801c8: e cmp r3, #9 ; 0x9
33f801cc: e1a01aa1 lsr r1, r1, #21
33f801d0: e1a005a0 lsr r0, r0, #11
33f801d4: ca000005 bgt 33f801f0


33f801d8: e59d3004 ldr r3, [sp, #4]
33f801dc: e add r3, r3, #1 ; 0x1
33f801e0: e58d3004 str r3, [sp, #4]
33f801e4: e59d2004 ldr r2, [sp, #4]
33f801e8: e cmp r2, #9 ; 0x9
33f801ec: dafffff9 ble 33f801d8


33f801f0: e3a0344e mov r3, # ; 0x4e000000
33f801f4: e1a01421 lsr r1, r1, #8
33f801f8: e3a02000 mov r2, #0 ; 0x0
33f801fc: e5c3100c strb r1, [r3, #12]
33f80200: e58d2004 str r2, [sp, #4]
33f80204: e59d3004 ldr r3, [sp, #4]
33f80208: e cmp r3, #9 ; 0x9
33f8020c: ca000005 bgt 33f80228


33f80210: e59d3004 ldr r3, [sp, #4]
33f80214: e add r3, r3, #1 ; 0x1
33f80218: e58d3004 str r3, [sp, #4]
33f8021c: e59d2004 ldr r2, [sp, #4]
33f80220: e cmp r2, #9 ; 0x9
33f80224: dafffff9 ble 33f80210


33f80228: e3a0344e mov r3, # ; 0x4e000000
33f8022c: e20010ff and r1, r0, #255 ; 0xff
33f80230: e3a02000 mov r2, #0 ; 0x0
33f80234: e5c3100c strb r1, [r3, #12]
33f80238: e58d2004 str r2, [sp, #4]
33f8023c: e59d3004 ldr r3, [sp, #4]
33f80240: e cmp r3, #9 ; 0x9
33f80244: ca000005 bgt 33f80260


33f80248: e59d3004 ldr r3, [sp, #4]
33f8024c: e add r3, r3, #1 ; 0x1
33f80250: e58d3004 str r3, [sp, #4]
33f80254: e59d2004 ldr r2, [sp, #4]
33f80258: e cmp r2, #9 ; 0x9
33f8025c: dafffff9 ble 33f80248


33f80260: e1a03420 lsr r3, r0, #8
33f80264: e20330ff and r3, r3, #255 ; 0xff
33f80268: e3a0244e mov r2, # ; 0x4e000000
33f8026c: e3a01000 mov r1, #0 ; 0x0
33f80270: e5c2300c strb r3, [r2, #12]
33f80274: e58d1004 str r1, [sp, #4]
33f80278: e59d3004 ldr r3, [sp, #4]
33f8027c: e cmp r3, #9 ; 0x9
33f80280: ca000005 bgt 33f8029c


33f80284: e59d3004 ldr r3, [sp, #4]
33f80288: e add r3, r3, #1 ; 0x1
33f8028c: e58d3004 str r3, [sp, #4]
33f80290: e59d2004 ldr r2, [sp, #4]
33f80294: e cmp r2, #9 ; 0x9
33f80298: dafffff9 ble 33f80284


33f8029c: e3a0344e mov r3, # ; 0x4e000000
33f802a0: e1a01820 lsr r1, r0, #16
33f802a4: e3a02000 mov r2, #0 ; 0x0
33f802a8: e5c3100c strb r1, [r3, #12]
33f802ac: e58d2004 str r2, [sp, #4]
33f802b0: e59d3004 ldr r3, [sp, #4]
33f802b4: e cmp r3, #9 ; 0x9
33f802b8: ca000005 bgt 33f802d4


33f802bc: e59d3004 ldr r3, [sp, #4]
33f802c0: e add r3, r3, #1 ; 0x1
33f802c4: e58d3004 str r3, [sp, #4]
33f802c8: e59d2004 ldr r2, [sp, #4]
33f802cc: e cmp r2, #9 ; 0x9
33f802d0: dafffff9 ble 33f802bc


33f802d4: e28dd008 add sp, sp, #8 ; 0x8
33f802d8: e12fff1e bx lr






















































































































33f802dc

:

33f802dc: e3a0244e mov r2, # ; 0x4e000000
33f802e0: e5d23020 ldrb r3, [r2, #32]
33f802e4: e tst r3, #1 ; 0x1
33f802e8: 0afffffc beq 33f802e0


33f802ec: e12fff1e bx lr






33f802f0

:

33f802f0: e3a0344e mov r3, # ; 0x4e000000
33f802f4: e5d30010 ldrb r0, [r3, #16]
33f802f8: e12fff1e bx lr



33f802fc

:

33f802fc: e92d4ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, lr}
33f80300: e3a0c44e mov ip, # ; 0x4e000000
33f80304: e59c3004 ldr r3, [ip, #4]
33f80308: e3a05000 mov r5, #0 ; 0x0
33f8030c: e1a0a002 mov sl, r2
33f80310: e24dd014 sub sp, sp, #20 ; 0x14
33f80314: e3c33002 bic r3, r3, #2 ; 0x2
33f80318: e1a07a80 lsl r7, r0, #21
33f8031c: e3a09e7f mov r9, #2032 ; 0x7f0
33f80320: ea cmp r5, sl
33f80324: e1a08000 mov r8, r0
33f80328: e58c3004 str r3, [ip, #4]
33f8032c: e58d1004 str r1, [sp, #4]
33f80330: e1a07aa7 lsr r7, r7, #21
33f80334: e1a0400c mov r4, ip
33f80338: ef add r9, r9, #15 ; 0xf
33f8033c: e1a06005 mov r6, r5
33f80340: e3a0b030 mov fp, #48 ; 0x30
33f80344: 2a00002b bcs 33f803f8


33f80348: e5c46008 strb r6, [r4, #8]
33f8034c: e58d600c str r6, [sp, #12]
33f80350: e59d300c ldr r3, [sp, #12]
33f80354: e cmp r3, #9 ; 0x9
33f80358: ca000005 bgt 33f80374


33f8035c: e59d300c ldr r3, [sp, #12]
33f80360: e add r3, r3, #1 ; 0x1
33f80364: e58d300c str r3, [sp, #12]
33f80368: e59d200c ldr r2, [sp, #12]
33f8036c: e cmp r2, #9 ; 0x9
33f80370: dafffff9 ble 33f8035c


33f80374: e1a00008 mov r0, r8
33f80378: ebffff8a bl 33f801a8


33f8037c: e5c4b008 strb fp, [r4, #8]
33f80380: e58d600c str r6, [sp, #12]
33f80384: e59d300c ldr r3, [sp, #12]
33f80388: e cmp r3, #9 ; 0x9
33f8038c: ca000005 bgt 33f803a8


33f80390: e59d300c ldr r3, [sp, #12]
33f80394: e add r3, r3, #1 ; 0x1
33f80398: e58d300c str r3, [sp, #12]
33f8039c: e59d200c ldr r2, [sp, #12]
33f803a0: e cmp r2, #9 ; 0x9
33f803a4: dafffff9 ble 33f80390


33f803a8: e5d43020 ldrb r3, [r4, #32]
33f803ac: e tst r3, #1 ; 0x1
33f803b0: 0afffffc beq 33f803a8


33f803b4: e1a02007 mov r2, r7
33f803b8: e5d43010 ldrb r3, [r4, #16]
33f803bc: e59d1004 ldr r1, [sp, #4]
33f803c0: e add r2, r2, #1 ; 0x1
33f803c4: e7c13005 strb r3, [r1, r5]
33f803c8: e add r5, r5, #1 ; 0x1
33f803cc: e cmp r2, r9
33f803d0: c3a03000 movgt r3, #0 ; 0x0
33f803d4: d3a03001 movle r3, #1 ; 0x1
33f803d8: e15a0005 cmp sl, r5
33f803dc: 93a03000 movls r3, #0 ; 0x0
33f803e0: e cmp r3, #0 ; 0x0
33f803e4: e add r8, r8, #1 ; 0x1
33f803e8: e3a07000 mov r7, #0 ; 0x0
33f803ec: 1afffff1 bne 33f803b8


33f803f0: ea cmp r5, sl
33f803f4: 3affffd3 bcc 33f80348


33f803f8: e3a0244e mov r2, # ; 0x4e000000
33f803fc: e ldr r3, [r2, #4]
33f80400: e orr r3, r3, #2 ; 0x2
33f80404: e str r3, [r2, #4]
33f80408: e28dd014 add sp, sp, #20 ; 0x14
33f8040c: e8bd4ff0 pop {r4, r5, r6, r7, r8, r9, sl, fp, lr}
33f80410: e12fff1e bx lr















































































33f80414

:

33f80414: e59fc060 ldr ip, [pc, #96] ; 33f8047c


33f80418: e92d00f0 push {r4, r5, r6, r7}
33f8041c: e3a06000 mov r6, #0 ; 0x0
33f80420: e ldr r7, [r6]
33f80424: e586c000 str ip, [r6]
33f80428: e ldr r3, [r6]
33f8042c: ec cmp r3, ip
33f80430: e1a05000 mov r5, r0
33f80434: e1a04001 mov r4, r1
33f80438: e1a0c002 mov ip, r2
33f8043c: 0a00000b beq 33f80470


33f80440: e cmp r2, r6
33f80444: 11a02006 movne r2, r6
33f80448: 11a01002 movne r1, r2
33f8044c: 0a000005 beq 33f80468


33f80450: e add r2, r2, #1 ; 0x1
33f80454: e7d53001 ldrb r3, [r5, r1]
33f80458: e15c0002 cmp ip, r2
33f8045c: e7c43001 strb r3, [r4, r1]
33f80460: e1a01002 mov r1, r2
33f80464: 8afffff9 bhi 33f80450


33f80468: e8bd00f0 pop {r4, r5, r6, r7}
33f8046c: e12fff1e bx lr
33f80470: e str r7, [r6]
33f80474: e8bd00f0 pop {r4, r5, r6, r7}
33f80478: eaffff9f b 33f802fc


33f8047c: .word 0x
































33f80480

:

33f80480: e3a01456 mov r1, # ; 0x
33f80484: e ldr r3, [r1, #112]
33f80488: e38330a0 orr r3, r3, #160 ; 0xa0
33f8048c: e str r3, [r1, #112]
33f80490: e3a00205 mov r0, # ; 0x
33f80494: e3a0200c mov r2, #12 ; 0xc
33f80498: e3a03003 mov r3, #3 ; 0x3
33f8049c: e str r2, [r1, #120]
33f804a0: e3a0c000 mov ip, #0 ; 0x0
33f804a4: e str r3, [r0]
33f804a8: e sub r2, r2, #7 ; 0x7
33f804ac: e add r3, r3, #23 ; 0x17
33f804b0: e str r2, [r0, #4]
33f804b4: e580c008 str ip, [r0, #8]
33f804b8: e580c00c str ip, [r0, #12]
33f804bc: e str r3, [r0, #40]
33f804c0: e12fff1e bx lr

















33f805b0

:

33f805b0: e3a0c203 mov ip, # ; 0x
33f805b4: e59f2038 ldr r2, [pc, #56] ; 33f805f4


33f805b8: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
33f805bc: e28c1c01 add r1, ip, #256 ; 0x100
33f805c0: e3a00000 mov r0, #0 ; 0x0
33f805c4: e28c4f45 add r4, ip, #276 ; 0x114
33f805c8: e3a03355 mov r3, # ; 0x
33f805cc: e str r0, [r1, #16]
33f805d0: e add r3, r3, # ; 0x
33f805d4: e str r4, [r2]
33f805d8: e3a02005 mov r2, #5 ; 0x5
33f805dc: e str r3, [r1, #4]
33f805e0: e58c2100 str r2, [ip, #256]
33f805e4: e str r0, [r1, #8]
33f805e8: ec str r0, [r1, #12]
33f805ec: e8bd0010 pop {r4}
33f805f0: e12fff1e bx lr
33f805f4: 33f808b8 .word 0x33f808b8



















33f805f8

:

33f805f8: e59f002c ldr r0, [pc, #44] ; 33f8062c


33f805fc: e ldr r1, [r0]
33f80600: e3a03203 mov r3, # ; 0x
33f80604: ec str r3, [r1, #12]
33f80608: e3a02301 mov r2, # ; 0x
33f8060c: e add r3, r3, # ; 0x
33f80610: e str r2, [r1, #8]
33f80614: e281c010 add ip, r1, #16 ; 0x10
33f80618: e add r3, r3, # ; 0x
33f8061c: e3a02004 mov r2, #4 ; 0x4
33f80620: e580c000 str ip, [r0]
33f80624: ec stm r1, {r2, r3}
33f80628: e12fff1e bx lr
33f8062c: 33f808b8 .word 0x33f808b8















33f80674

:

33f80674: e5d03000 ldrb r3, [r0]
33f80678: e cmp r3, #0 ; 0x0
33f8067c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
33f80680: 03a02003 moveq r2, #3 ; 0x3
33f80684: 0a000006 beq 33f806a4


33f80688: e3a02000 mov r2, #0 ; 0x0
33f8068c: e add r2, r2, #1 ; 0x1
33f80690: e7d03002 ldrb r3, [r0, r2]
33f80694: e cmp r3, #0 ; 0x0
33f80698: 1afffffb bne 33f8068c


33f8069c: ec add r3, r2, #12 ; 0xc
33f806a0: e1a02123 lsr r2, r3, #2
33f806a4: e59f4048 ldr r4, [pc, #72] ; 33f806f4


33f806a8: e3a03315 mov r3, # ; 0x
33f806ac: e594c000 ldr ip, [r4]
33f806b0: e add r3, r3, # ; 0x
33f806b4: e add r3, r3, #9 ; 0x9
33f806b8: e1a0100c mov r1, ip
33f806bc: e58c3004 str r3, [ip, #4]
33f806c0: e str r2, [r1], #8
33f806c4: e3a02000 mov r2, #0 ; 0x0
33f806c8: e7d03002 ldrb r3, [r0, r2]
33f806cc: e cmp r3, #0 ; 0x0
33f806d0: e7c13002 strb r3, [r1, r2]
33f806d4: e add r2, r2, #1 ; 0x1
33f806d8: 1afffffa bne 33f806c8


33f806dc: e59c3000 ldr r3, [ip]
33f806e0: e1a03103 lsl r3, r3, #2
33f806e4: e08c3003 add r3, ip, r3
33f806e8: e str r3, [r4]
33f806ec: e8bd0010 pop {r4}
33f806f0: e12fff1e bx lr
33f806f4: 33f808b8 .word 0x33f808b8





































33f806f8

:

33f806f8: e59f3010 ldr r3, [pc, #16] ; 33f80710


33f806fc: e ldr r1, [r3]
33f80700: e3a02000 mov r2, #0 ; 0x0
33f80704: e str r2, [r1]
33f80708: e str r2, [r1, #4]
33f8070c: e12fff1e bx lr
33f80710: 33f808b8 .word 0x33f808b8








Disassembly of section .comment:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202941.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:57
下一篇 2026年3月19日 下午10:58


相关推荐

  • java使用键盘输入_java中键盘输入代码

    java使用键盘输入_java中键盘输入代码展开全部程序开发过程中,32313133353236313431303231363533e78988e69d8331333365633962需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:以下将列出几种方法:方法一:…

    2025年12月4日
    4
  • sql数据库去重语法_数据库去重语句

    sql数据库去重语法_数据库去重语句sql 语句去重 sql 语句通过 DISTINCT 关键字去重 用于返回唯一不同的值 DISTINCT 关键字需要搭配 SELECT 语句使用 语法为 SELECTDISTIN 列名称 FROM 表名称 如果指定了 SELECTDISTIN 那么 ORDERBY 子句中的项就必须出现在选择列表中 否则会出现错误 扩展资料 distinct 这个关键字用来过滤掉多余的重复记录只保留一条 但往往只用它

    2026年3月20日
    3
  • AI笔记: 数学基础之矩阵运算与行列式

    AI笔记: 数学基础之矩阵运算与行列式方阵行列式行列式是数学的一个函数 可以看做是几何空间中 一个线性变换对 面积 或 体积 的影响方阵行列式 n 阶方阵 A 的行列式表示为 A A A 或者 det A 1 1 的方阵 其行列式等于该元素本身 A a11 nbsp nbsp nbsp A a11A a 11 A a 11 A a11 nbsp nbsp nbsp A a11 2 2 的方阵 其行列式用主对角线元素成绩减去次对角线元素的乘积 A a11a12a21a22

    2026年3月17日
    1
  • Cherry Studio 接入 Claude 3.7 模型教程:5分钟配置混合推理 AI 助手

    Cherry Studio 接入 Claude 3.7 模型教程:5分钟配置混合推理 AI 助手

    2026年3月16日
    1
  • RangeValidator1 日期验证格式

    RangeValidator1 日期验证格式13.3验证控件的类型到目前为止,已经讨论了验证的相关理论。ASP.NET2.0提供了5种验证控件,表13-1对此进行了描述。然后,将介绍每种控件的细节,首先是表格式概述。13.3.1类型表表13-1控件名适用情况RequiredFieldValidator为了避免空值,例如当用户输入密码以建立新账户时…

    2022年7月12日
    21
  • war包解压后怎么重新打war包_war包和zip

    war包解压后怎么重新打war包_war包和zip$ClipboardContent$

    2022年10月4日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号