Rev 6315 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6315 | Rev 6322 | ||
---|---|---|---|
Line 926... | Line 926... | ||
926 | ;input: |
926 | ;input: |
927 | ; app1 - 㪠§ ⥫ì ç «® exif.app1 |
927 | ; app1 - 㪠§ ⥫ì ç «® exif.app1 |
928 | ; num - ¯®à浪®¢ë© ®¬¥à ⥣ ( ç¨ ¥âáï á 1) |
928 | ; num - ¯®à浪®¢ë© ®¬¥à ⥣ ( ç¨ ¥âáï á 1) |
929 | ; txt - 㪠§ ⥫ì ⥪áâ, ªã¤ ¡ã¤¥â § ¯¨á ® § 票¥ |
929 | ; txt - 㪠§ ⥫ì ⥪áâ, ªã¤ ¡ã¤¥â § ¯¨á ® § 票¥ |
930 | ; t_max - ¬ ªá¨¬ «ìë© à §¬¥à ⥪áâ |
930 | ; t_max - ¬ ªá¨¬ «ìë© à §¬¥à ⥪áâ |
- | 931 | ;output: |
|
- | 932 | ; txt - § ¯®«ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: § 票¥", ¥á«¨ ¥ ©¤¥® â® ¯ãáâ ï áâப |
|
931 | align 4 |
933 | align 4 |
932 | proc exif_get_app1_tag, app1:dword, num:dword, txt:dword, t_max:dword |
934 | proc exif_get_tag, app1:dword, num:dword, txt:dword, t_max:dword |
933 | pushad |
935 | pushad |
934 | mov eax,[app1] |
936 | mov eax,[app1] |
935 | mov edi,[txt] |
937 | mov edi,[txt] |
936 | mov ecx,[num] |
938 | mov ecx,[num] |
Line 966... | Line 968... | ||
966 | popad |
968 | popad |
967 | ret |
969 | ret |
968 | endp |
970 | endp |
Line 969... | Line 971... | ||
969 | 971 | ||
- | 972 | ;input: |
|
- | 973 | ; app1 - 㪠§ ⥫ì ç «® exif.app1 |
|
- | 974 | ; id - ¨¤¥â¨ä¨ª â®à ⥣ § 票¥ ª®â®à®£® 㦮 ©â¨ |
|
- | 975 | ; txt - 㪠§ ⥫ì ⥪áâ, ªã¤ ¡ã¤¥â § ¯¨á ® § 票¥ |
|
- | 976 | ; t_max - ¬ ªá¨¬ «ìë© à §¬¥à ⥪áâ |
|
- | 977 | ;output: |
|
- | 978 | ; txt - § ¯®«ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: § 票¥", ¥á«¨ ¥ ©¤¥® â® ¯ãáâ ï áâப |
|
- | 979 | align 4 |
|
- | 980 | proc exif_get_tag_id, app1:dword, id:dword, txt:dword, t_max:dword |
|
- | 981 | pushad |
|
- | 982 | mov eax,[app1] |
|
- | 983 | mov edi,[txt] |
|
- | 984 | ||
- | 985 | xor edx,edx |
|
- | 986 | mov byte[edi],dl |
|
- | 987 | cmp [eax],edx |
|
- | 988 | je .end_f ;¥á«¨ ¥ ©¤¥ 㪠§ ⥫ì ç «® exif.app1 |
|
- | 989 | ||
- | 990 | mov ebx,[id] |
|
- | 991 | movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1 |
|
- | 992 | bt edx,0 |
|
- | 993 | jnc @f |
|
- | 994 | ror bx,8 |
|
- | 995 | @@: |
|
- | 996 | ||
- | 997 | ;¡¥à¥¬ ç¨á«® ⥣®¢ |
|
- | 998 | mov eax,[eax] |
|
- | 999 | movzx ecx,word[eax] |
|
- | 1000 | bt edx,0 |
|
- | 1001 | jnc @f |
|
- | 1002 | ror cx,8 |
|
- | 1003 | @@: |
|
- | 1004 | ;¢ ecx - ç¨á«® ⥣®¢ |
|
- | 1005 | ||
- | 1006 | ;¨é¥¬ § ¤ ë© â¥£ |
|
- | 1007 | add eax,offs_tag_0 |
|
- | 1008 | .cycle_0: |
|
- | 1009 | cmp word[eax],bx ;word[eax+0] - ª®¤ ⥣ |
|
- | 1010 | je @f |
|
- | 1011 | add eax,tag_size |
|
- | 1012 | loop .cycle_0 |
|
- | 1013 | jmp .end_f |
|
- | 1014 | @@: |
|
- | 1015 | stdcall read_tag_value,[app1],[t_max] |
|
- | 1016 | .end_f: |
|
- | 1017 | popad |
|
- | 1018 | ret |
|
- | 1019 | endp |
|
- | 1020 | ||
970 | ;input: |
1021 | ;input: |
971 | ; app1 - 㪠§ ⥫ì exif.app1 ¨«¨ exif.app1.child |
1022 | ; app1 - 㪠§ ⥫ì exif.app1 ¨«¨ exif.app1.child |
972 | ; child - 㪠§ â¥«ì ¤«ï § ¯®«¥¨ï ç « ¤®ç¥à¨å ⥣®¢ exif.app1.child |
1023 | ; child - 㪠§ â¥«ì ¤«ï § ¯®«¥¨ï ç « ¤®ç¥à¨å ⥣®¢ exif.app1.child |
973 | ; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à¨å |
1024 | ; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à¨å |
974 | ;output: |
1025 | ;output: |
975 | ; child - 㪠§ ⥫ì ç «® ¤®ç¥à¨å ⥣®¢ |
1026 | ; child - 㪠§ ⥫ì ç «® ¤®ç¥à¨å ⥣®¢ |
976 | align 4 |
1027 | align 4 |
977 | proc exif_get_app1_child, app1:dword, child:dword , c_tag:dword |
1028 | proc exif_get_child, app1:dword, child:dword , c_tag:dword |
978 | pushad |
1029 | pushad |
979 | mov eax,[app1] |
1030 | mov eax,[app1] |
Line 980... | Line 1031... | ||
980 | mov edi,[child] |
1031 | mov edi,[child] |
Line 1104... | Line 1155... | ||
1104 | ;¢á¥ ®áâ «ìë¥ ¥ ¯®¤¤¥à¦¨¢ îâáï |
1155 | ;¢á¥ ®áâ «ìë¥ ¥ ¯®¤¤¥à¦¨¢ îâáï |
1105 | jmp .no_suport |
1156 | jmp .no_suport |
Line 1106... | Line 1157... | ||
1106 | 1157 | ||
1107 | .suport: |
1158 | .suport: |
1108 | ; 室¨¬ ⥣ 0x8769 (à áè¨à¥ë¥ ¤ ë¥ ¯® Exif) |
1159 | ; 室¨¬ ⥣ 0x8769 (à áè¨à¥ë¥ ¤ ë¥ ¯® Exif) |
1109 | stdcall exif_get_app1_child, eax,edi,0x8769 |
1160 | stdcall exif_get_child, eax,edi,0x8769 |
1110 | cmp dword[edi],0 |
1161 | cmp dword[edi],0 |
1111 | je .no_suport |
1162 | je .no_suport |
1112 | ; 室¨¬ ⥣ 0x927c (¤ ë¥ Maker ¯® ª ¬¥à¥) |
1163 | ; 室¨¬ ⥣ 0x927c (¤ ë¥ Maker ¯® ª ¬¥à¥) |
1113 | stdcall exif_get_app1_child, edi,edi, 0x927c |
1164 | stdcall exif_get_child, edi,edi, 0x927c |
1114 | cmp dword[edi],0 |
1165 | cmp dword[edi],0 |
Line 1115... | Line 1166... | ||
1115 | je .no_suport |
1166 | je .no_suport |
1116 | 1167 | ||
Line 1671... | Line 1722... | ||
1671 | 1722 | ||
1672 | 1723 | ||
1673 | align 16 |
1724 | align 16 |
1674 | EXPORTS: |
- | |
1675 | dd sz_exif_get_app1, exif_get_app1 |
- | |
1676 | dd sz_exif_get_app1_tag, exif_get_app1_tag |
1725 | EXPORTS: |
- | 1726 | dd sz_exif_get_app1, exif_get_app1 |
|
- | 1727 | dd sz_exif_get_app2, exif_get_app2 |
|
- | 1728 | dd sz_exif_get_tag, exif_get_tag |
|
1677 | dd sz_exif_get_app1_child, exif_get_app1_child |
1729 | dd sz_exif_get_tag_id, exif_get_tag_id |
1678 | dd sz_exif_get_app2, exif_get_app2 |
1730 | dd sz_exif_get_child, exif_get_child |
1679 | dd 0,0 |
- | |
1680 | sz_exif_get_app1 db 'exif_get_app1',0 |
- | |
1681 | sz_exif_get_app1_tag db 'exif_get_app1_tag',0 |
1731 | dd 0,0 |
- | 1732 | sz_exif_get_app1 db 'exif_get_app1',0 |
|
- | 1733 | sz_exif_get_app2 db 'exif_get_app2',0 |
|
- | 1734 | sz_exif_get_tag db 'exif_get_tag',0 |
|
- | 1735 | sz_exif_get_tag_id db 'exif_get_tag_id',0 |