⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdmarker.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
00011c  62c1              STR      r1,[r0,#0x2c]
00011e  f89d110f          LDRB     r1,[sp,#0x10f]
000122  6301              STR      r1,[r0,#0x30]
000124  f89d1110          LDRB     r1,[sp,#0x110]
000128  6341              STR      r1,[r0,#0x34]
00012a  6821              LDR      r1,[r4,#0]
00012c  f8c19014          STR      r9,[r1,#0x14]
000130  6820              LDR      r0,[r4,#0]
000132  2102              MOVS     r1,#2
000134  6842              LDR      r2,[r0,#4]
000136  4620              MOV      r0,r4
000138  4790              BLX      r2
;;;450    	     bits[9], bits[10], bits[11], bits[12],
;;;451    	     bits[13], bits[14], bits[15], bits[16]);
;;;452    
;;;453        /* Here we just do minimal validation of the counts to avoid walking
;;;454         * off the end of our table space.  jdhuff.c will check more carefully.
;;;455         */
;;;456        if (count > 256 || ((INT32) count) > length)
00013a  f5ba7f80          CMP      r10,#0x100
00013e  dc01              BGT      |L4.324|
000140  45da              CMP      r10,r11
000142  dd06              BLE      |L4.338|
                  |L4.324|
;;;457          ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
000144  6821              LDR      r1,[r4,#0]
000146  2008              MOVS     r0,#8
000148  6148              STR      r0,[r1,#0x14]
00014a  6820              LDR      r0,[r4,#0]
00014c  6801              LDR      r1,[r0,#0]
00014e  4620              MOV      r0,r4
000150  4788              BLX      r1
                  |L4.338|
;;;458    
;;;459        for (i = 0; i < count; i++)
000152  2000              MOVS     r0,#0
000154  e011              B        |L4.378|
                  |L4.342|
;;;460          INPUT_BYTE(cinfo, huffval[i], return FALSE);
000156  b94f              CBNZ     r7,|L4.364|
000158  68e9              LDR      r1,[r5,#0xc]
00015a  4620              MOV      r0,r4
00015c  4788              BLX      r1
00015e  b918              CBNZ     r0,|L4.360|
                  |L4.352|
000160  2000              MOVS     r0,#0
                  |L4.354|
;;;461    
;;;462        length -= count;
;;;463    
;;;464        if (index & 0x10) {		/* AC table definition */
;;;465          index -= 0x10;
;;;466          htblptr = &cinfo->ac_huff_tbl_ptrs[index];
;;;467        } else {			/* DC table definition */
;;;468          htblptr = &cinfo->dc_huff_tbl_ptrs[index];
;;;469        }
;;;470    
;;;471        if (index < 0 || index >= NUM_HUFF_TBLS)
;;;472          ERREXIT1(cinfo, JERR_DHT_INDEX, index);
;;;473    
;;;474        if (*htblptr == NULL)
;;;475          *htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo);
;;;476      
;;;477        MEMCOPY((*htblptr)->bits, bits, SIZEOF((*htblptr)->bits));
;;;478        MEMCOPY((*htblptr)->huffval, huffval, SIZEOF((*htblptr)->huffval));
;;;479      }
;;;480    
;;;481      if (length != 0)
;;;482        ERREXIT(cinfo, JERR_BAD_LENGTH);
;;;483    
;;;484      INPUT_SYNC(cinfo);
;;;485      return TRUE;
;;;486    }
000162  b045              ADD      sp,sp,#0x114
000164  e8bd8ff0          POP      {r4-r11,pc}
                  |L4.360|
000168  e9d56700          LDRD     r6,r7,[r5,#0]         ;460
                  |L4.364|
00016c  f8160b01          LDRB     r0,[r6],#1            ;460
000170  f80d0009          STRB     r0,[sp,r9]            ;460
000174  1e7f              SUBS     r7,r7,#1              ;460
000176  f1090001          ADD      r0,r9,#1              ;459
                  |L4.378|
00017a  4681              MOV      r9,r0                 ;459
00017c  4550              CMP      r0,r10                ;459
00017e  dbea              BLT      |L4.342|
000180  ea5f60c8          LSLS     r0,r8,#27             ;464
000184  ebab0b0a          SUB      r11,r11,r10           ;462
000188  4640              MOV      r0,r8                 ;465
00018a  d505              BPL      |L4.408|
00018c  f1a00810          SUB      r8,r0,#0x10           ;465
000190  eb040088          ADD      r0,r4,r8,LSL #2       ;466
000194  30c4              ADDS     r0,r0,#0xc4           ;466
000196  e002              B        |L4.414|
                  |L4.408|
000198  eb040080          ADD      r0,r4,r0,LSL #2       ;468
00019c  30b4              ADDS     r0,r0,#0xb4           ;468
                  |L4.414|
00019e  4681              MOV      r9,r0                 ;468
0001a0  f1b80f04          CMP      r8,#4                 ;471
0001a4  d309              BCC      |L4.442|
0001a6  6821              LDR      r1,[r4,#0]            ;472
0001a8  201e              MOVS     r0,#0x1e              ;472
0001aa  6148              STR      r0,[r1,#0x14]         ;472
0001ac  6821              LDR      r1,[r4,#0]            ;472
0001ae  f8c18018          STR      r8,[r1,#0x18]         ;472
0001b2  6820              LDR      r0,[r4,#0]            ;472
0001b4  6801              LDR      r1,[r0,#0]            ;472
0001b6  4620              MOV      r0,r4                 ;472
0001b8  4788              BLX      r1                    ;472
                  |L4.442|
0001ba  f8d90000          LDR      r0,[r9,#0]            ;474
0001be  b920              CBNZ     r0,|L4.458|
0001c0  4620              MOV      r0,r4                 ;475
0001c2  f7fffffe          BL       jpeg_alloc_huff_table
0001c6  f8c90000          STR      r0,[r9,#0]            ;475
                  |L4.458|
0001ca  2211              MOVS     r2,#0x11              ;477
0001cc  a940              ADD      r1,sp,#0x100          ;477
0001ce  f8d90000          LDR      r0,[r9,#0]            ;477
0001d2  f7fffffe          BL       __aeabi_memcpy4
0001d6  f8d90000          LDR      r0,[r9,#0]            ;478
0001da  f44f7280          MOV      r2,#0x100             ;478
0001de  3011              ADDS     r0,r0,#0x11           ;478
0001e0  4669              MOV      r1,sp                 ;478
0001e2  f7fffffe          BL       __aeabi_memcpy
                  |L4.486|
0001e6  f1bb0f10          CMP      r11,#0x10             ;432
0001ea  f73faf2c          BGT      |L4.70|
0001ee  f1bb0f00          CMP      r11,#0                ;481
0001f2  d006              BEQ      |L4.514|
0001f4  6821              LDR      r1,[r4,#0]            ;482
0001f6  200b              MOVS     r0,#0xb               ;482
0001f8  6148              STR      r0,[r1,#0x14]         ;482
0001fa  6820              LDR      r0,[r4,#0]            ;482
0001fc  6801              LDR      r1,[r0,#0]            ;482
0001fe  4620              MOV      r0,r4                 ;482
000200  4788              BLX      r1                    ;482
                  |L4.514|
000202  c5c0              STM      r5!,{r6,r7}           ;485
000204  2001              MOVS     r0,#1                 ;485
000206  e7ac              B        |L4.354|
;;;487    
                          ENDP


                          AREA ||i.get_dqt||, CODE, READONLY, ALIGN=2

                  get_dqt PROC
;;;489    LOCAL(boolean)
;;;490    get_dqt (j_decompress_ptr cinfo)
000000  e92d4ff8          PUSH     {r3-r11,lr}
;;;491    /* Process a DQT marker */
;;;492    {
;;;493      INT32 length;
;;;494      int n, i, prec;
;;;495      unsigned int tmp;
;;;496      JQUANT_TBL *quant_ptr;
;;;497      INPUT_VARS(cinfo);
000004  6984              LDR      r4,[r0,#0x18]
000006  4607              MOV      r7,r0                 ;492
;;;498    
;;;499      INPUT_2BYTES(cinfo, length, return FALSE);
000008  e9d45600          LDRD     r5,r6,[r4,#0]
00000c  b936              CBNZ     r6,|L5.28|
00000e  68e1              LDR      r1,[r4,#0xc]
000010  4638              MOV      r0,r7
000012  4788              BLX      r1
000014  2800              CMP      r0,#0
000016  d06f              BEQ      |L5.248|
000018  e9d45600          LDRD     r5,r6,[r4,#0]
                  |L5.28|
00001c  f8150b01          LDRB     r0,[r5],#1
000020  1e76              SUBS     r6,r6,#1
000022  ea4f2800          LSL      r8,r0,#8
000026  d106              BNE      |L5.54|
000028  68e1              LDR      r1,[r4,#0xc]
00002a  4638              MOV      r0,r7
00002c  4788              BLX      r1
00002e  2800              CMP      r0,#0
000030  d062              BEQ      |L5.248|
000032  e9d45600          LDRD     r5,r6,[r4,#0]
                  |L5.54|
000036  f8150b01          LDRB     r0,[r5],#1
00003a  1e76              SUBS     r6,r6,#1
00003c  4440              ADD      r0,r0,r8
;;;500      length -= 2;
00003e  1e80              SUBS     r0,r0,#2
;;;501    
;;;502      while (length > 0) {
000040  e09a              B        |L5.376|
                  |L5.66|
;;;503        INPUT_BYTE(cinfo, n, return FALSE);
000042  b936              CBNZ     r6,|L5.82|
000044  68e1              LDR      r1,[r4,#0xc]
000046  4638              MOV      r0,r7
000048  4788              BLX      r1
00004a  2800              CMP      r0,#0
00004c  d054              BEQ      |L5.248|
00004e  e9d45600          LDRD     r5,r6,[r4,#0]
                  |L5.82|
000052  f8150b01          LDRB     r0,[r5],#1
;;;504        prec = n >> 4;
;;;505        n &= 0x0F;
;;;506    
;;;507        TRACEMS2(cinfo, 1, JTRC_DQT, n, prec);
000056  6839              LDR      r1,[r7,#0]
000058  ea4f1b20          ASR      r11,r0,#4             ;504
00005c  f000080f          AND      r8,r0,#0xf            ;505
000060  2051              MOVS     r0,#0x51
000062  6148              STR      r0,[r1,#0x14]
000064  6839              LDR      r1,[r7,#0]
000066  1e76              SUBS     r6,r6,#1              ;503
000068  f8c18018          STR      r8,[r1,#0x18]
00006c  6838              LDR      r0,[r7,#0]
00006e  2101              MOVS     r1,#1
000070  f8c0b01c          STR      r11,[r0,#0x1c]
000074  6838              LDR      r0,[r7,#0]
000076  6842              LDR      r2,[r0,#4]
000078  4638              MOV      r0,r7
00007a  4790              BLX      r2
;;;508    
;;;509        if (n >= NUM_QUANT_TBLS)
00007c  f1b80f04          CMP      r8,#4
000080  db09              BLT      |L5.150|
;;;510          ERREXIT1(cinfo, JERR_DQT_INDEX, n);
000082  6839              LDR      r1,[r7,#0]
000084  201f              MOVS     r0,#0x1f
000086  6148              STR      r0,[r1,#0x14]
000088  6839              LDR      r1,[r7,#0]
00008a  f8c18018          STR      r8,[r1,#0x18]
00008e  6838              LDR      r0,[r7,#0]
000090  6801              LDR      r1,[r0,#0]
000092  4638              MOV      r0,r7
000094  4788              BLX      r1
                  |L5.150|
;;;511          
;;;512        if (cinfo->quant_tbl_ptrs[n] == NULL)
000096  eb070088          ADD      r0,r7,r8,LSL #2
00009a  4680              MOV      r8,r0
00009c  f8d000a4          LDR      r0,[r0,#0xa4]
0000a0  b920              CBNZ     r0,|L5.172|
;;;513          cinfo->quant_tbl_ptrs[n] = jpeg_alloc_quant_table((j_common_ptr) cinfo);
0000a2  4638              MOV      r0,r7
0000a4  f7fffffe          BL       jpeg_alloc_quant_table
0000a8  f8c800a4          STR      r0,[r8,#0xa4]
                  |L5.172|
;;;514        quant_ptr = cinfo->quant_tbl_ptrs[n];
;;;515    
;;;516        for (i = 0; i < DCTSIZE2; i++) {
0000ac  f8d8a0a4          LDR      r10,[r8,#0xa4]
0000b0  f04f0800          MOV      r8,#0
                  |L5.180|
;;;517          if (prec)
0000b4  f1bb0f00          CMP      r11,#0
0000b8  d019              BEQ      |L5.238|
;;;518    	INPUT_2BYTES(cinfo, tmp, return FALSE);
0000ba  b92e              CBNZ     r6,|L5.200|
0000bc  68e1              LDR      r1,[r4,#0xc]
0000be  4638              MOV      r0,r7
0000c0  4788              BLX      r1
0000c2  b1c8              CBZ      r0,|L5.248|
0000c4  e9d45600          LDRD     r5,r6,[r4,#0]
                  |L5.200|
0000c8  f8150b01          LDRB     r0,[r5],#1
0000cc  1e76              SUBS     r6,r6,#1
0000ce  ea4f2000          LSL      r0,r0,#8
0000d2  9000              STR      r0,[sp,#0]
0000d4  d105              BNE      |L5.226|
0000d6  68e1              LDR      r1,[r4,#0xc]
0000d8  4638              MOV      r0,r7
0000da  4788              BLX      r1
0000dc  b160              CBZ      r0,|L5.248|
0000de  e9d45600          LDRD     r5,r6,[r4,#0]
                  |L5.226|
0000e2  f8150b01          LDRB     r0,[r5],#1
0000e6  9900              LDR      r1,[sp,#0]
0000e8  1e76              SUBS     r6,r6,#1
0000ea  4408              ADD      r0,r0,r1
0000ec  e00c              B        |L5.264|
                  |L5.238|
;;;519          else
;;;520    	INPUT_BYTE(cinfo, tmp, return FALSE);
0000ee  b946              CBNZ     r6,|L5.258|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -