[轉貼]中斷入口詳解

6502 組合語言,是哈電族裡使用的程式語言,也是目前設計 Bin 的唯一方法,有興趣的就進來吧
回覆文章
頭像
sppmg
一級會員
一級會員
文章: 260
註冊時間: 2004-01-10 12:41 PM
來自: 地球ㄉ台灣ㄉ台北
聯繫:

[轉貼]中斷入口詳解

文章 sppmg »

中斷入口詳解

我當初是用印的保存這資料,現在打出來給大家。





1.PHP PLA彈出B標誌位元,判斷是IRQ(硬體中斷)還是BRK(軟體中斷)B=1為BRK
具體程式
php
pla //標誌位元組在a寄存器
and #$10 //只保留b標誌位元(第5位元),其他使其為0
bne $.... //若以上操作結果不為零(b<>0)表示為brk

2.直接從$0101~$01ff的系統堆疊中找被保存的中斷。從中斷點(#$00)後取2個位元組,作中斷向量名稱(如BRK $C719中的$C719,顯示為$19 $C7[括號內是我自己加的,這一條我不知自己要如何操作])

以下使用符號說明,X、Y、?表不同的任意值。A1、A2分別表向量名的高、低8位元。如:BRK $0701那麼A1=$07 A2=$01

3.格式為BRK $FFxx。切換到$84頁,取$B300+xx*2的2位元組當中斷向量名
4.格式:BRK $00xx。由$00頁的$8000+xx*2取2位元組當中斷向量名
5.BRK $Cyxx。先將$0A改為$?y(如:y=7 $0A為$97$77$07...均可)由$C000+xx*2取2位元組當中斷向量名
6.判斷A1是否大於$10,若是,令A1格式為xy(x>1),當前頁+y,從$4000+A2*2取2位元組當中斷向量名。這用來跨BRK調用,只可後跳不可前跳。若要跳回可BRK $20xx
7.BRK $xxyy(xx>$10) 跳到$xx頁的$4000+yy*2取2位元組當中斷向量名
(以上應為順序判斷)。除了第6項外(NC2K無)。都通用所有NC機型。
第6項因為我用NC2000,也看不太懂,各位就自己研究吧!
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
回覆文章