Witam
piszę prosty program w asm, i napotkałem na problem z call i ret
platforma - brak, piszę coś na zasadzie bootloadera także nie istotne,
kompilator fasm
ładuje sobie pierwszy kod pod np 0500h:0000h a następny pod 7c00h:0000h
i teraz w kodzie z pierwszego chciałbym "wyskoczyć" do 7c00h aby wykonać kod i powrócić.. więc zrobiłem coś takiego:
;kod z 0500h:0000h
mov al,1
call [cos] ;;;skacze do 7c00h:0000 < tutaj robi to co chcę i dalej wykonują się instrukcje spod tego adresu`
cos dd 7c00h:0000h
;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;kod z 7c00h:0000h
or al,al
jz pomin
;;;instrukcje do wykonania
ret <- i tutaj marzyło by mi się aby powrócił do 0500h:miejsce gdzie skończył....co się niestety nie dzieje...
pomin:
pop ax ;; zeby oczyscic stos
;;takie tam inne funkcje
pewnie to jakaś głupota bo już zbyt długo nad tym siedzę.... bardzo proszę o pomoc