forked from KolibriOS/kolibrios
Fixed deletion of selected text in the Editbox with "Backspace"
"Shift+Delete", "Shift+Backspace" with selected text still work wrong. git-svn-id: svn://kolibrios.org@1858 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ba8ddae0aa
commit
4a76b34dcc
@ -62,18 +62,18 @@ pushad
|
||||
;----------------------------------------------------------
|
||||
;--- ¯à®¢¥à塞, çâ® ¦ â® --------------------------------
|
||||
;----------------------------------------------------------
|
||||
use_key_process backspase,delete,left,right,home,end,insert
|
||||
use_key_process backspace,delete,left,right,home,end,insert
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;‡ £«ãèª ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢¨§ â.¥. ¯à¨ ®¡ à㦥¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll
|
||||
;--- ¦ â ¤àã£ ï ª« ¢¨è ---
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;<3B>஢¥àª ãáâ ®¢«¥ «¨ ä« £ ¯à¨ ª®â®à®¬ 㦮 ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ 㦮¬ ¡®ªá¥ ¥á«¨ â ª®©¥®¡å®¤¨¬®á⨠¥â 㦮 § ª®¬¥â¨à®¢ âì ¬ ªà®á
|
||||
;<3B>஢¥àª ãáâ ®¢«¥ «¨ ä« £ ¯à¨ ª®â®à®¬ 㦮 ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ 㦮¬ ¡®ªá¥, ¥á«¨ â ª®© ¥®¡å®¤¨¬®á⨠¥â, 㦮 § ª®¬¥â¨à®¢ âì ¬ ªà®á
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_key_figures_only
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;¯à®¢¥àª shift ¡ë« «¨ ¦ â
|
||||
;¯à®¢¥àª shift, ¡ë« «¨ ¦ â
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
are_key_shift_press
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@ -81,7 +81,7 @@ are_key_shift_press
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
are_key_cur_end
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;Ž¡à ¡®âª ª« ¢¨è insert,delete.backspase,home,end,left,right
|
||||
;Ž¡à ¡®âª ª« ¢¨è insert,delete.backspace,home,end,left,right
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_work_key
|
||||
}
|
||||
@ -149,36 +149,15 @@ use_mouse_func
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
;¨¦¥ à ᯮ«®¦¥ë äãªæ¨¨ ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì «£®à¨â¬
|
||||
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
;Œ ªà®á ¤«ï ¢ë¢®¤ ®á®¢ëå äãªæ¨© ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬
|
||||
;Œ ªà®á ¤«ï ¢ë¢®¤ ®á®¢ëå äãªæ¨© ª®â®àë¥ ¨á¯®«ì§ãîâáï ¡®ªá®¬
|
||||
macro use_general_func
|
||||
{
|
||||
;debug_func
|
||||
;----------------------------------------------------------
|
||||
;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ¢ë¤¥«¥®© ç á⨠-----------------
|
||||
;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ¢ë¤¥«¥®© ç á⨠-----------------
|
||||
;----------------------------------------------------------
|
||||
edit_box.draw_shift:
|
||||
test word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« áâ¨
|
||||
@ -237,14 +216,14 @@ edit_box.draw_bg_eax:
|
||||
mcall
|
||||
ret
|
||||
;----------------------------------------------------------
|
||||
;--- ¯à®æ¥¤ãà ¯®«ãç¥¨ï ª®«¨ç¥á⢠ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨¥ ª®¬¯®¥â
|
||||
;--- ¯à®æ¥¤ãà ¯®«ãç¥¨ï ª®«¨ç¥á⢠ᨬ¢®«®¢ ¢ ⥪ã饩 è¨à¨¥ ª®¬¯®¥â
|
||||
;----------------------------------------------------------
|
||||
edit_box.get_n:
|
||||
mov eax,ed_width ;¯®«ã祬 è¨à¨ã ª®¬¯®¥â
|
||||
xor edx,edx ;१ã«ìâ â à ᯮ«®£ ¥âáï ¢ ¯ ॠedx:eax ¢ eax - ®áâ ⮪
|
||||
sub eax,4 ;¢ëç⨬ 4
|
||||
mov ebx,6 ;§ £à㧬¨ ¤¥«¨â¥«ì
|
||||
div ebx ;à §¬¤¥«¨¬ 6
|
||||
xor edx,edx ;१ã«ìâ â à ᯮ« £ ¥âáï ¢ ¯ ॠedx:eax ¢ eax - ®áâ ⮪
|
||||
sub eax,4 ;¢ëç⥬ 4
|
||||
mov ebx,6 ;§ £à㧨¬ ¤¥«¨â¥«ì
|
||||
div ebx ;à §¤¥«¨¬ 6
|
||||
ret
|
||||
;----------------------------------------------------------
|
||||
;--- ¯à®æ¥¤ãà à¨á®¢ ¨ï ªãàá®à --------------------------
|
||||
@ -325,8 +304,8 @@ ret
|
||||
;----------------------------------------------------------
|
||||
;--- ¯à®¢¥àª , § 襫 «¨ ªãàá®à § £à ¨æë ¨, ¥á«¨ ¤®, ---
|
||||
;--- ¨§¬¥ï¥¬ ᬥ饨¥ ------------------------------------
|
||||
;--- ¥á«¨ ᬥ饨¥ ¡ë«® ãáâ ®¢ª ä« £ ed_offset_cl ¨ ç¥
|
||||
; ¥á«¨ ¨ç¥£® ¥ ¨§¬¥¨«®áì â® ¢ëáâ ¢«¥¨¥ ed_offset_fl
|
||||
;--- ¥á«¨ ᬥ饨¥ ¡ë«®, ãáâ ®¢ª ä« £ ed_offset_cl, ¨ ç¥,
|
||||
; ¥á«¨ ¨ç¥£® ¥ ¨§¬¥¨«®áì, â® ¢ëáâ ¢«¥¨¥ ed_offset_fl
|
||||
; ¢ ®¡é¥© ¡¨â®¢®© ¬ âà¨æ¥ á®áâ®ï¨ï ª®¬¯®¥â®¢ word ed_flags
|
||||
;----------------------------------------------------------
|
||||
edit_box.check_offset:
|
||||
@ -337,7 +316,7 @@ pushad
|
||||
ja edit_box.sub_8
|
||||
|
||||
push ebx
|
||||
call edit_box.get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ã¬¥é îâáï ¢ è¨à¨¥ ª®¬¯®¥â , ¢ ¯ ॠॣ¨áâ஢ edx:eax
|
||||
call edit_box.get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ã¬¥é îâáï ¢ è¨à¨¥ ª®¬¯®¥â , ¢ ¯ ॠॣ¨áâ஢ edx:eax
|
||||
pop ebx
|
||||
mov edx,ebx
|
||||
add edx,eax ;ed_offset+width editbox
|
||||
@ -389,11 +368,11 @@ pushad
|
||||
xor al,al
|
||||
cld
|
||||
repne scasb ;¯®¨áª ¢ áâப¥ edi ᨬ¢®« al
|
||||
mov ecx,edi ;ecx = text + ¬¨. § 票¥ ¨§: 1) ed_max ¨«¨ 2) ¤«¨ë áâப¨ text
|
||||
mov ecx,edi ;ecx = text + ¬¨. § 票¥ ¨§: 1) ed_max ¨«¨ 2) ¤«¨ë áâப¨ text
|
||||
|
||||
mov edi,dword[edit]
|
||||
mov esi,dword[text]
|
||||
sub ecx,esi ;ecx = ¤«¨ áâப¨ text (® ¥ ¡®«ìè¥ ç¥¬ ed_max)
|
||||
sub ecx,esi ;ecx = ¤«¨ áâப¨ text (® ¥ ¡®«ìè¥ ç¥¬ ed_max)
|
||||
dec ecx
|
||||
mov ed_size,ecx ;áâ ¢¨¬ ®¢ë© à §¬¥à áâப¨
|
||||
mov ed_pos,ecx ;áâ ¢¨¬ ªãàá®à ¢ ª®¥æ ®¢®© áâப¨
|
||||
@ -449,7 +428,7 @@ edit_box_key.sh_n1:
|
||||
pop ebx ;¡®«ì襥
|
||||
pop eax ;¬¥ì襥
|
||||
|
||||
cmp eax,ecx ;áà ¢¥¨¥ á ¬¥ì襣® á offset.
|
||||
cmp eax,ecx ;áà ¢¥¨¥ ¬¥ì襣® á offset.
|
||||
jae edit_box_key.f_f ;¥á«¨ ¡®«ìè¥
|
||||
xor eax,eax
|
||||
cmp edx,ebx ;cà ¢¨¬ à §¬¥à w_off á ¡®«ì訬
|
||||
@ -494,7 +473,7 @@ edit_box_key.drw_sim:
|
||||
call edit_box_key.draw_rectangle ; à¨á®¢ âì ¯àאַ㣮«ì¨ª á § ¤ ë¬ æ¢¥â®¬
|
||||
jmp @b
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;”ãªæ¨ï ãáâ ®¢ª¨ ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift
|
||||
;”ãªæ¨ï ãáâ ®¢ª¨ ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨¨ ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift
|
||||
;‹®£¨ª :
|
||||
;;;;;;;;;;
|
||||
edit_box_key.draw_wigwag:
|
||||
@ -502,14 +481,14 @@ edit_box_key.draw_wigwag:
|
||||
mov ebp,shift_color
|
||||
call edit_box.clear_cursor
|
||||
|
||||
or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« áâ¨
|
||||
or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ ¢ë¤¥«¥®© ®¡« áâ¨
|
||||
mov ebp,shift_color
|
||||
mov eax,dword ed_pos
|
||||
test word ed_flags,ed_left_fl
|
||||
jz edit_box_key.low
|
||||
jmp @f
|
||||
;;;;;;;;;;
|
||||
;”ãªæ¨ï 㤠«¥¨ï ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift
|
||||
;”ãªæ¨ï 㤠«¥¨ï ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨¨ ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift
|
||||
;‹®£¨ª :
|
||||
;;;;;;;;;;
|
||||
edit_box_key.draw_wigwag_cl:
|
||||
@ -536,7 +515,7 @@ edit_box_key.sh_first_sh:
|
||||
or word ed_flags,ed_shift_on
|
||||
@@: ret
|
||||
;Ž¡à ¡®âª ªà ©¨å ¯®«®¦¥¨© ¢ editbox ¯à¨ ¦ ⮬ shift
|
||||
;¯à®¨§¢®¤¨â áï⨥ ¢ë¤¥«¥¨¥, ¥á«¨ ¥â shift
|
||||
;¯à®¨§¢®¤¨â áï⨥ ¢ë¤¥«¥¨ï, ¥á«¨ ¥â shift
|
||||
;¨ ç¥ ¢®®¡é¥ ¢ë室¨â
|
||||
edit_box_key.sh_st_of:
|
||||
test word ed_flags,ed_shift
|
||||
@ -546,16 +525,16 @@ edit_box_key.sh_st_of:
|
||||
mov ebp,ed_color
|
||||
mov ebx,dword ed_shift_pos
|
||||
call edit_box_key.sh_cl_ ;®ç¨á⪠¢ë¤¥«¥®£® äà £¬¥â
|
||||
and word ed_flags,ed_shift_cl ; ®ç¨á⪠®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥¨¥
|
||||
and word ed_flags,ed_shift_cl ; ®ç¨á⪠®â ⮣®, çâ® ã¡à «¨ ¢ë¤¥«¥¨¥
|
||||
jmp edit_box.draw_cursor_text
|
||||
@@:
|
||||
and word ed_flags,ed_shift_off
|
||||
popad
|
||||
ret 4
|
||||
;¯à®¢¥àª á®áâ®ï¨ï shift ¡ë« «¨ ® ¦ â à ìè¥?
|
||||
;¯à®¢¥àª á®áâ®ï¨ï shift, ¡ë« «¨ ® ¦ â à ìè¥?
|
||||
edit_box_key.sh_enable:
|
||||
test word ed_flags,ed_shift
|
||||
jne edit_box_key.sh_ext_en ; à¨á®¢ âì § ªà è¥ë© ¯àאַ㣮«ì¨ª
|
||||
jne edit_box_key.sh_ext_en ; à¨á®¢ âì § ªà è¥ë© ¯àאַ㣮«ì¨ª
|
||||
|
||||
test word ed_flags,ed_shift_bac
|
||||
je @f
|
||||
@ -563,7 +542,7 @@ edit_box_key.sh_enable:
|
||||
|
||||
mov ebp,ed_color
|
||||
mov ebx,dword ed_shift_pos
|
||||
call edit_box_key.sh_cl_ ;®ç¨á⪠¢ë¤¥«¥®£® äà £¬¥â
|
||||
call edit_box_key.sh_cl_ ;®ç¨á⪠¢ë¤¥«¥®£® äà £¬¥â
|
||||
call edit_box_key.draw_wigwag_cl
|
||||
and word ed_flags,ed_shift_cl ; 1¢ à ¥ 㦮
|
||||
ret
|
||||
@ -576,11 +555,11 @@ edit_box_key.sh_ext_en:
|
||||
call edit_box.check_offset
|
||||
test word ed_flags,ed_offset_fl
|
||||
je @f
|
||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å
|
||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ¨å ®ç¨áâª
|
||||
mov eax,dword ed_shift_pos
|
||||
mov ebx,dword ed_pos
|
||||
mov ecx,dword ed_shift_pos_old
|
||||
;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩
|
||||
;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩
|
||||
cmp eax,ecx
|
||||
je edit_box_key.1_shem
|
||||
jb edit_box_key.smaller
|
||||
@ -664,7 +643,7 @@ edit_box_key.dh_n:
|
||||
mov dword ed_shift_pos,ebp
|
||||
jmp edit_box_key.del_ch_sh
|
||||
|
||||
@@: add esi,ecx ;㪠§ ⥫ì + ᬥ饨¥ ª ॠ«ì®¬ã ¡ãää¥àã
|
||||
@@: add esi,ecx ;㪠§ ⥫ì + ᬥ饨¥ ª ॠ«ì®¬ã ¡ãä¥àã
|
||||
mov ebx,esi
|
||||
inc esi
|
||||
cld
|
||||
@ -701,7 +680,7 @@ edit_box_key.clear_bg:
|
||||
@@: mov ebx,ed_pos
|
||||
push ebx
|
||||
sub eax,ebx
|
||||
mov ebx,eax ;It is don't optimal
|
||||
mov ebx,eax ;It is not optimal
|
||||
|
||||
pop eax ;ed_pos
|
||||
mov ecx,ed_offset
|
||||
@ -757,9 +736,9 @@ pusha ;
|
||||
@@:edit_ex
|
||||
}
|
||||
;¬ ªà®á ª« ¢¨è ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï
|
||||
macro use_key_process backspase,delete,left,right,home,end,insert
|
||||
macro use_key_process backspace,delete,left,right,home,end,insert
|
||||
{
|
||||
if backspase eq
|
||||
if backspace eq
|
||||
else
|
||||
cmp ah,8
|
||||
jz edit_box_key.backspace
|
||||
@ -906,7 +885,7 @@ macro are_key_cur_end
|
||||
cmp ecx,ebx ;…᫨ ã á ¯®§¨æ¨ï ªãàá®à = ⥪ã饬ã à §¬¥àã ¯¥ç â ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®æ¥
|
||||
je edit_box_key.In_k
|
||||
|
||||
test dword bp_flags,ed_insert ;IF insert is enable â.ª. edi ¨§¬¥¥ ¤à¥á㥬 ç¥à¥§ ebp
|
||||
test dword bp_flags,ed_insert ;IF insert is enabled â.ª. edi ¨§¬¥¥, ¤à¥á㥬 ç¥à¥§ ebp
|
||||
jne edit_box_key.ins_v
|
||||
;clear
|
||||
pusha
|
||||
@ -976,12 +955,12 @@ edit_box_key.bac_del:
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;--- ¦ â ª« ¢¨è backspace ---
|
||||
edit_box_key.backspace:
|
||||
test word ed_flags,ed_shift_on
|
||||
jne edit_box_key.delete
|
||||
; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï?
|
||||
mov ecx,ed_pos
|
||||
test ecx,ecx
|
||||
jnz edit_box_key.del_bac
|
||||
test word ed_flags,ed_shift_on
|
||||
jne edit_box_key.bac_del
|
||||
popad
|
||||
ret 4
|
||||
|
||||
@ -1088,24 +1067,24 @@ edit_box_mouse.mouse_wigwag:
|
||||
sub ebx,ed_width
|
||||
|
||||
xor edx,edx
|
||||
sub eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨ âë ¤® editbox ¯® ®á¨ å
|
||||
sub eax,ebx ; ¢ëç⥬ ¨§ ª®®à¤¨ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨ âë ¤® editbox ¯® ®á¨ å
|
||||
mov ebx,6
|
||||
div ebx
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;<3B>®«ã稫¨ ª®®à¤¨ âë ¢ eax ¬ë誨, â.¥. ªã¤ ® ¯¥à¥¬¥á⨫ áì
|
||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å
|
||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ¨å ®ç¨áâª
|
||||
add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饨¥
|
||||
cmp eax,dword ed_size ;¥á«¨ ¢ë諨 § ¯à¥¤¥«ë, â® ¨ç¥£® ¥ ¤¥« âì
|
||||
ja edit_box_mouse.mwigvag
|
||||
edit_box_mouse.mdraw:
|
||||
mov dword ed_pos,eax ;á®åà ¨¬ ®¢®¥ § 票¥
|
||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å
|
||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ¨å ®ç¨áâª
|
||||
mov ecx,dword ed_shift_pos
|
||||
mov ebx,dword ed_shift_pos_old
|
||||
mov dword ed_shift_pos_old,eax ;¢¥á¥¬ ®¢®¥ § 票¥ áâ ன ¯®§¨æ¨¨ ªãàá®à
|
||||
;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩
|
||||
;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩
|
||||
cmp ecx,ebx ;¢ëïá塞 ªã¤ ¡ë«® ¤¢¨¦¥¨¥ ®¤¨ è £ § ¤
|
||||
je edit_box_mouse.m1_shem ;¤¢¨¦¥¨ï ¥ ¡ë«® à ¥¥
|
||||
jb edit_box_mouse.msmaller ;¤¢¨¦¥¨¥ ¡ë«® ->
|
||||
@ -1245,7 +1224,7 @@ edit_box_mouse._mshift:
|
||||
mov ebp,dword shift_color
|
||||
mov ebx,dword ed_shift_pos
|
||||
call edit_box_key.sh_cl_
|
||||
or word ed_flags,ed_mous_adn_b ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
|
||||
or word ed_flags,ed_mous_adn_b ;ãáâ ®¢¨¬ ¡¨â, çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
|
||||
edit_box_mouse.m_sh:
|
||||
call edit_box.draw_text
|
||||
call edit_box.draw_cursor
|
||||
@ -1300,23 +1279,23 @@ macro debug
|
||||
macro debug_func
|
||||
{
|
||||
.str:
|
||||
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«®
|
||||
;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®©
|
||||
cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax
|
||||
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï, ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx, ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«®
|
||||
;¯¥à¥¢®¤ ç¨á« ¢ ASCII áâபã, ¢å®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥¨ï, edi ¤à¥á ªã¤ ¡ã¤¥¬ § ¯¨áë¢ âì áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®©
|
||||
cmp eax,ecx ;áà ¢¨âì, ¥á«¨ ¢ eax ¬¥ìè¥, 祬 ¢ ecx, â® ¯¥à¥©â¨ @@-1 â.¥. pop eax
|
||||
jb @f
|
||||
xor edx,edx ;®ç¨áâ¨âì edx
|
||||
div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx
|
||||
push edx ;¯®«®¦¨âì ¢ á⥪
|
||||
;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨
|
||||
call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx
|
||||
call .str ;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â , ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx
|
||||
pop eax
|
||||
@@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï))
|
||||
;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â
|
||||
@@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al, 祬 10 (¤«ï á¨á⥬ë áç¨á«¥¨ï 10 ¤ ï ª®¬ ¤ - «¨è ï))
|
||||
;sbb al,$69 ;- ç¥áâ®, ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â
|
||||
;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥)
|
||||
or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
|
||||
stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi
|
||||
or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥, 祬 ¤¢¥ ¢ëè¥
|
||||
stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祩ªã ¯ ¬ï⨠es:edi
|
||||
|
||||
ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
|
||||
ret ;¢¥àãâìáï ®ç¥ì ¨â¥à¥áë© å®¤, â.ª. ¯®ª ¢ á⥪¥ åà ¨âáï ª®«-¢® ¢ë§®¢®¢, â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
|
||||
}
|
||||
|
||||
ed_struc_size=76
|
||||
|
Loading…
Reference in New Issue
Block a user