ZjiÜt∞nφ adresy viru v pam∞ti
Narozdφl od boot vir∙, kterΘ majφ jistotu, ₧e jejich spuÜt∞nφ bude realizovßno v₧dy v pam∞ti od adresy adresy
0000:7c00, musφ viry souborovΘ svoji aktußlnφ pozici v pam∞ti zjiÜ¥ovat. Segmentovß Φßst adresy je urΦena segmentem
vlastnφho k≤du (CS), offsetovß Φßst adresy pak trikem pomocφ instrukce call, kterß uklßdß na zßsobnφk nßvratovou adresu
(t.j. adresu nßsledujφcφ instrukce programu).
call trik ; skok na nasledujici instrukci
trik:
pop bp ; ziskava adresu teto instrukce
sub bp, offset trik ; korekce na originalni posun
Od tohoto okam₧iku virus znß svoji pozici v pam∞ti, co₧ je vyu₧φvßno k≤dem viru zejmΘna p°i prßci s prom∞nn²mi, resp.
p°i jejich adresovßnφ (pou₧itφ registru BP je samoz°ejm∞ jednou z mo₧n²ch variant).
Dßle pak lze v t∞le viru nalΘzt odkazy podobnΘho typu, jako zde nßsledujφcφ uvedenΘ p°φklady naΦtenφ offsetu
prom∞nnΘ Φi naΦtenφ obsahu adresy definovanΘ prom∞nnou.
Konstrukce mov dx, offset prom∞nnß:
lea dx, [bp+offset promenna]
resp.
lea dx, [bp+promenna]