Difference between revisions of "Style/ru"

From KolibriOS wiki
Jump to navigation Jump to search
Line 23: Line 23:
 
   ...
 
   ...
 
  endp
 
  endp
 +
 +
Если Вы вносите изменения или добавление в программу, неважно каких размеров, полезно как-то помечать добавленный код, попутно описывая, какую операцию он выполняет. Тогда потом никто не  будет недоумевать "А это здесь откуда и что оно вообще делает?".
 +
 +
Делать это можно так, как показано ниже:
 +
 +
;// diamond [ (convert size from decimal representation to dword)
 +
;--    mov    edx,dword[@PARAMS+1]
 +
mov esi,@PARAMS+1
 +
xor edx,edx
 +
xor eax,eax
 +
    @@: lodsb
 +
test al,al
 +
jz @f
 +
lea edx,[edx*4+edx]
 +
lea edx,[edx*2+eax-'0']
 +
jmp @b
 +
    @@:
 +
;// diamond ]
  
 
[[Category:Coding]]
 
[[Category:Coding]]

Revision as of 16:46, 10 April 2010

Стиль оформления

Рекомендации по оформлению кода.

При написании процедур необходимо перед процедурой указывать входные, выходные параметры, так же указывать какие регистры изменяются.

;in:  eax = pointer
;     ebx = PID
;out: eax = return code in (0,-1)
;destroys eax
;================================
subrutine:

При написании процедур очень полезно комментировать их способом, показанным ниже.

Тогда даже человек, только начинающий изучать ассемблер, сразу поймёт, что далет данная функция. И наоборот, даже самому опытному программисту может понадобится некторое время просто на понимание того, что делает данная функция.

;-----------------------------------------------------------------------------
proc key.ctrl_o ;///// ENTER OPEN FILENAME ///////////////////////////////////
;-----------------------------------------------------------------------------
  ...
  ...
  ...
endp

Если Вы вносите изменения или добавление в программу, неважно каких размеров, полезно как-то помечать добавленный код, попутно описывая, какую операцию он выполняет. Тогда потом никто не будет недоумевать "А это здесь откуда и что оно вообще делает?".

Делать это можно так, как показано ниже:

;// diamond [ (convert size from decimal representation to dword)
;--     mov     edx,dword[@PARAMS+1]
	mov	esi,@PARAMS+1

xor edx,edx xor eax,eax

   @@: lodsb

test al,al jz @f lea edx,[edx*4+edx] lea edx,[edx*2+eax-'0'] jmp @b

   @@:
;// diamond ]