Style/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
Line 14: Line 14:
При написании процедур очень полезно комментировать их способом, показанным ниже.
При написании процедур очень полезно комментировать их способом, показанным ниже.


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


  ;-----------------------------------------------------------------------------
  ;-----------------------------------------------------------------------------

Revision as of 16:47, 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 ]