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

📄 guiencjs.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\guiencjs.o --depend=.\Obj\guiencjs.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Core\GUIEncJS.c]
                          THUMB

                          AREA ||i._DispLine_SJIS||, CODE, READONLY, ALIGN=1

                  _DispLine_SJIS PROC
;;;91     */
;;;92     static void _DispLine_SJIS(const char GUI_UNI_PTR *s, int Len) {
000000  b570              PUSH     {r4-r6,lr}
000002  4604              MOV      r4,r0
000004  460d              MOV      r5,r1
;;;93       U8 c0;
;;;94       while (--Len >=0) {
;;;95         c0=*(const U8*)s++;
;;;96         if (c0 > 127) {
;;;97           U8  c1 = *(const U8*)s++;
;;;98           Len--;
;;;99           GL_DispChar (DB2SJIS(c0, c1));
;;;100        } else {
;;;101          GL_DispChar(c0);
000006  e00a              B        |L1.30|
                  |L1.8|
000008  f8140b01          LDRB     r0,[r4],#1            ;95
00000c  287f              CMP      r0,#0x7f              ;96
00000e  d904              BLS      |L1.26|
000010  f8141b01          LDRB     r1,[r4],#1            ;97
000014  1e6d              SUBS     r5,r5,#1              ;98
000016  ea412000          ORR      r0,r1,r0,LSL #8       ;98
                  |L1.26|
00001a  f7fffffe          BL       GL_DispChar
                  |L1.30|
00001e  1e6d              SUBS     r5,r5,#1              ;94
000020  d5f2              BPL      |L1.8|
;;;102        }
;;;103      }
;;;104    }
000022  bd70              POP      {r4-r6,pc}
;;;105    
                          ENDP


                          AREA ||i._GetLineDistX_SJIS||, CODE, READONLY, ALIGN=1

                  _GetLineDistX_SJIS PROC
;;;42     */
;;;43     static int _GetLineDistX_SJIS(const char GUI_UNI_PTR *s, int Len) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
000004  460d              MOV      r5,r1
;;;44       int Dist =0;
000006  f04f0600          MOV      r6,#0
;;;45       if (s) {
00000a  d010              BEQ      |L2.46|
00000c  e00b              B        |L2.38|
                  |L2.14|
;;;46         U8 c0;
;;;47         while (((c0=*(const U8*)s) !=0) && Len >=0) {
;;;48           s++; Len--;
00000e  1c64              ADDS     r4,r4,#1
000010  1e6d              SUBS     r5,r5,#1
;;;49           if (c0 > 127) {
000012  287f              CMP      r0,#0x7f
000014  d904              BLS      |L2.32|
;;;50             U8  c1 = *(const U8*)s++;
000016  f8141b01          LDRB     r1,[r4],#1
;;;51             Len--;
00001a  1e6d              SUBS     r5,r5,#1
00001c  ea412000          ORR      r0,r1,r0,LSL #8
                  |L2.32|
;;;52             Dist += GUI_GetCharDistX(DB2SJIS(c0, c1));
;;;53           } else {
;;;54             Dist += GUI_GetCharDistX(c0);
000020  f7fffffe          BL       GUI_GetCharDistX
000024  4406              ADD      r6,r6,r0
                  |L2.38|
000026  7820              LDRB     r0,[r4,#0]            ;47
000028  b108              CBZ      r0,|L2.46|
00002a  2d00              CMP      r5,#0                 ;47
00002c  daef              BGE      |L2.14|
                  |L2.46|
;;;55           }
;;;56         }
;;;57       }
;;;58       return Dist;
00002e  4630              MOV      r0,r6
;;;59     }
000030  bd70              POP      {r4-r6,pc}
;;;60     
                          ENDP


                          AREA ||i._GetLineLen_SJIS||, CODE, READONLY, ALIGN=1

                  _GetLineLen_SJIS PROC
;;;70     */
;;;71     static int _GetLineLen_SJIS(const char GUI_UNI_PTR *s, int MaxLen) {
000000  4602              MOV      r2,r0
;;;72       int Len =0;
000002  2000              MOVS     r0,#0
;;;73       U8 c0;
;;;74       while (((c0=*(const U8*)s) !=0) && Len < MaxLen) {
000004  e008              B        |L3.24|
                  |L3.6|
;;;75         s++;
000006  1c52              ADDS     r2,r2,#1
;;;76         if (c0 > 127) {
000008  2b7f              CMP      r3,#0x7f
00000a  d902              BLS      |L3.18|
;;;77           Len++; s++;
00000c  1c40              ADDS     r0,r0,#1
00000e  1c52              ADDS     r2,r2,#1
000010  e001              B        |L3.22|
                  |L3.18|
;;;78         } else {
;;;79           switch (c0) {
000012  2b0a              CMP      r3,#0xa
000014  d005              BEQ      |L3.34|
                  |L3.22|
;;;80           case '\n': return Len;
;;;81           }
;;;82         }
;;;83         Len++;
000016  1c40              ADDS     r0,r0,#1
                  |L3.24|
000018  7813              LDRB     r3,[r2,#0]            ;74
00001a  2b00              CMP      r3,#0                 ;74
00001c  d001              BEQ      |L3.34|
00001e  4288              CMP      r0,r1                 ;74
000020  dbf1              BLT      |L3.6|
                  |L3.34|
;;;84       }
;;;85       return Len;
;;;86     }
000022  4770              BX       lr
;;;87     
                          ENDP


                          AREA ||.constdata||, DATA, READONLY, ALIGN=2

                  GUI_ENC_APIList_SJIS
                          DCD      _GetLineDistX_SJIS
                          DCD      _GetLineLen_SJIS
                          DCD      _DispLine_SJIS

⌨️ 快捷键说明

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