Difference between revisions of "Style/ru"
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 ]