co dokładnie robi "byte ptr"

0

Juz w kilku programach znalazłem coś takiego (lub dword ptr), ale niezbyt mogę opis co do tego.To jest jakaś konwersja?

0
variable dw 1234h
;...
;al=34h
mov al, byte ptr [variable] ;formatow zapisu byte/word/dword ptr jest mnogo
;...

Chodzi o to , ze zaklaracja variable dw (data word) powoduje, ze przy odwolaniach do niej uzywa sie odwolan 2bajtowych (word), a np. zaladowac do al mozesz tylko jeden bajt...

procedure proc(p:pointer);
assembler;
asm
  mov ax,word ptr [p]   {ax=offset}
  mov bx,word ptr [p+2]  {bx=segment}
end;
 

A tu masz tak samo nierówne rozmiary ax/bx i p (2 i 4 bajty), stąd rowniez potrzeba dokladnego zapisu, do czego sie odwolujesz, bo standardowe dowolanie do p, to odwolanie 4-bajtowe.

... i tak dalej i tak dalej (dword/qword - dla kompilatorów 64-bitowych- niedaleka już przyszlość).

1 użytkowników online, w tym zalogowanych: 0, gości: 1