Autor ::Roman Bórik Poslaná :: 18.03.2014 08:37:14 Predmet ::Re: Chybné trasování RST1 s následnou pseudoinstrukcí DB
Ale tu vôbec nejde o to, čo sa nachádza za (v tomto prípade) RST 1. Skrátka, aby sa debugger zastavil za emulovanou inštrukciou, tak sa musí do PC dostať adresa, ktorá je za touto inštrukciou. Ale keďže emulovaná inštrukcia CALL/RST neprevedie návrat na očakávanú adresu, tak sa tam ani nezastaví.
Napadá mi, že by sa toto dalo riešiť iným spôsobom. Ak by sa vykonávala inštrukcia CALL/RST, tak by sa odpamätala hodnota SP a po vykonaní každého RET by sa testovalo, či sa SP dostalo na pôvodnú hodnotu. Ak áno, debugger by sa zastavil po návrate na danom mieste.