Frage zu einigen Assembler Befehlen

#2061620
Lesenswert?

Normalerweise ist ein call ein kurzer call mit einem kleinen 
displacement zB +-64byte, waehrend ein rcall den gesammten adressbereich 
springen kann, hier wahrscheinlich 0..65k.
Ein ijmp ist ein indirekter Sprung, der zB ueber den Z-pointer geht.
Der Unterschied zwischen einem call und einem jmp ist, dass der call 
zurueck kann, da wird beim call selbst der returnpointer auf dem stack 
abgelegt, waehrend ein jmp das nicht macht. Am ende des calls ( = 
subroutine) macht man ueblicherweise ret (=return), und dann ist der 
programmzaehler wieder zurueck, vor dem call, plus zwei, oder so.
Gast #2061634
Lesenswert?

Mini Nilp schrieb:
> Normalerweise ist ein call ein kurzer call mit einem kleinen
> displacement zB +-64byte, waehrend ein rcall den gesammten adressbereich
> springen kann, hier wahrscheinlich 0..65k.

kann es sein dass du was verwechselt hast?
Kenn das eher so rum:
rcall = relative call, Unterfunktionsaufruf mit begrenzter Reichweite
call = Unterfunktionsaufruf
:-)
Gast #2061645
Lesenswert?

im wesentlichen liegt der unterschied in der "erreichbarkeit". d. h. du 
kannst mit den verschiedenen "calls" verschieden weit von dieser 
Position springen. im zweifel nimm einfach den "call", der am weitesten 
springt

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren