1、主從式8259a的初始化設定:
初始化設定如下:
(1)中斷觸發方式:邊沿觸發
(2)中斷遮蔽方式:常規遮蔽方式,即使用ocw1向imr寫屏碼
(3)中斷優先順序排隊方式:固定優先順序的完全巢狀方式
(4)中斷結束方式:非自動結束方式的兩種命令格式
即:不指定eoi方式、指定eoi方式
在中斷服務程式完畢時和中斷返回之前,用結束命令**20h或6xh結束中斷。
(5)級聯方式:兩片主/從連線
從片的中斷輸出引腳int連到主片的中斷請求輸入引腳ir2上,兩片級聯處理15級中斷。
(6)15級中斷的中斷號分配:
irq0 08h irq1 09h
irq2 0ah irq3 0bh
irq4 0ch irq5 0dh
irq6 0eh irq7 0fh
irq8 70h irq9 71h
irq10 72h irq11 73h
irq12 74h irq13 75h
irq14 76h irq15 77h
2、初始化8259a主片解析:
根據以上硬體連線,系統上電後,對8259a初始化的程式段為:
(1)icw1的功能:
a7、a6、a5:全為0
d4:為1
d3為0:邊沿觸發
d1為0:級聯
d0為1:需要icw4
所以這句話的意思是:邊沿觸發,級聯(多片),需要icw4
(2)icw2的功能:
mov al,8
相當於將d3置高電平,代表中斷號的高五位。
(3)主片的icw3:
mov al,04h
相當於將主片的ir2上接從片。
d4:特殊全巢狀方式
d3、d2:非緩衝方式
d1:非自動結束中斷
d0:處理器選擇
所以這句話的意思是:非緩衝,全巢狀,非自動結束中斷
3、初始化8259a的從片解析:
3、級聯情況下主片初始化與從片初始化的異同:
4、初始化的程式段:
inta00 equ 020h ;8259a主片埠(a0=0) inta01 equ 021h ;8259a從片埠(a1=0
)... ...
mov al,11h ;icw1
out inta00,al
jmp short $ +2
mov al,
8;icw2
out inta01,al
jmp short $ +2
mov al,04h ;icw3,主片的 ir2接上從片
out inta01,al
jmp short $ +2
mov al,01h ;icw4
out inta01,al
... ...
intb00 equ 0a0h ; 8259a從片埠(a0=0
)intb01 equ 0a1h ; 8259a從片埠(a0=1
)... ...
mov al,11h
out intb00,al
jmp short $ +2
mov al,70h
out intb01,al
jmp short $ +2
mov al,02h ;從片接主片的 ir2
out intb01,al
jmp short $ +2
mov al,01h
out intb01,al
... ...
初始化 關於tensorflow的初始化
在寫mnist手寫體識別任務 已放github 時遇到的 問題 我們都知道在session run的時候需要初始化。但是初始化在什麼位置是至關重要的。來看下這段 sess tf.session sess.run tf.global variables initializer mnist model ...
從彙編看c 初始化列表初始化成員變數
簡略來說,編譯器會對初始化列表按照成員變數的宣告順序重新一一排序,安插到建構函式中進行初始化操作,而且這些初始化操作在建構函式裡面使用者自己定義的任何 之前。下面是c 原始碼 class x intmain 下面是main函式裡面的彙編碼 13 int main xoreax,eax movesp,...
初始化列表成員變數的初始化
對於以下程式 include using namespace std class base base b 0 a b int get a int get b int main 本想得到的結果是a,b都為90。但是實際結果卻是 4273046 90process returned 0 0x0 exec...