asembler dos, skok odległy

0
  db 0eah	
  dw offset miejsce1
  dw 3eh

Dlaczego taki kod realizuje "skok odległy" i wpisanie do segmentu CS wartości (adresu) 5h (mniemam, że to chodzi o selektor w trybie chronionym) ?

Analizuję pewny kod i mam problemy... z tymi instrukcjami, wiem że realizują one skok odległy ale dlaczego i w jakim celu to nie wiem. co oznacza instrukcja zapisania w sposób jak wyżej ?

Dlaczego zostały użyte instrukcje jak wyżej, a nie np. jmp far ?

0

nie 5h, a 3eh
pomyleczka

0

Ano to sa takie male triki assemblerowe.

EA cd	 JMP ptr16:16	 Jump far, absolute, address given in operand
EA cp	 JMP ptr16:32	 Jump far, absolute, address given in operand

0eah to jest opcode jmp a dalej tak jak w podanej tabelce, podajesz parametry.

0

bo to jest (składnia NASM)

jmp word 3Eh:miejsce1

czyli skok do CS=3Eh, IP=miejsce1

(mniemam, że to chodzi o selektor w trybie chronionym) ?
Pod warunkiem że mówimy o 16-bitowym trybie chronionym procesora 286.
W trybie 32-bitowym taka instrukcja potrzebowałaby jeszcze prefiksu db 66h, już pomijając jej (bez)sensowność.

0

Dzięki Panowie ;)

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