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]
    
  • Konstrukce mov dx, word ptr prom∞nnß:
    	mov dx, word ptr [bp+offset promenna]
    
    resp.
    	mov dx, word ptr [bp+promenna]
    

    Zdroj: Computer Press, ???