📄 uni2gb.lst
字号:
C51 COMPILER V7.20 UNI2GB 05/13/2005 17:26:49 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE UNI2GB
OBJECT MODULE PLACED IN .\UNI2GB.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ..\COMMON.C51\UNI2GB.C BROWSE DEBUG OBJECTEXTEND PRINT(.\UNI2GB.lst) OBJECT
-(.\UNI2GB.obj)
line level source
1 #ifndef _COMMON_DEFINE
2 #include "COMMON.c"
3 #endif
4
5 #include "unicode.h"
6
7 void Uni2GB(unsigned char *s,unsigned char len);
8
9 void Uni2GB(unsigned char *s,unsigned char len)
10 {
11 1 WORD mid,hi,lo,unicode;
12 1 BYTE i,j,k;
13 1
14 1 len=len/2;
15 1 j=0;k=0;
16 1 for(i=0;i<len;i++)
17 1 {
18 2 if (s[j+1]==0&&s[j]<0xa4)
19 2 {s[k]=s[j];j+=2;k++;}
20 2 else
21 2 {
22 3 ((BYTE *)&unicode)[1]=s[j++];
23 3 ((BYTE *)&unicode)[0]=s[j++];
24 3 lo=0;hi=UNICODE_MAX - 1;
25 3 while(lo<=hi)
26 3 {
27 4 mid = (lo + hi) / 2;
28 4 if (unicode==Unicode[mid][0]) {unicode=Unicode[mid][1];break;}
29 4 else if (unicode<Unicode[mid][0]) hi=mid-1;
30 4 else if (unicode>Unicode[mid][0]) lo=mid+1;
31 4 }
32 3 s[k++]=((BYTE *)&unicode)[0];
33 3 s[k++]=((BYTE *)&unicode)[1];
34 3 }
35 2 }
36 1 if (k<j) s[k]=0;
37 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 345 ----
CONSTANT SIZE = 29784 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 11
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -