2017-02-10 9 views

Répondre

0

Votre fichier se compose de deux sections 8000-87FFh et 8800-BFFFh. Apparemment, le premier est bootloader, le second est le programme principal. Vous pouvez les démonter séparément.

J'ai essayé de faire ce qui suit:

  1. Il suffit de couper et enregistrer la première section à un fichier, et la seconde à l'autre.
  2. Démontez chaque fichier avec naked_asm: naken_util.exe -disasm -stm8 ./fw.hex > ./fw.asm
  3. En conséquence, j'ai deux fichiers asm: main.asm et boot.asm

fichier de démarrage commence avec table IRQ commune. Le fichier principal destine toutes les IRQ à 886Bh où semble commencer la fonction main(), et la première instruction est asm("sim") qui désactive toutes les IRQ.

En outre, vous pouvez utiliser un programme plus complexe tel que IDA et les décomplie à la source si vous avez besoin.