網課划水倆月不知悔改就是我本人了
問了班級大佬才弄明白一點的**和使用方法。
nout equ 8000h ; 數碼管輸出位址
icw1 equ 00010011b ; 單片8259, 上公升沿中斷, 要寫icw4
icw2 equ 01100000b ; 中斷號為60h
icw4 equ 00011001b ; 工作在8086/88 方式
ocw1 equ 10111110b ; 中斷遮蔽字,只響應int0 int6 中斷
cs8259a equ 09000h ; 8259位址
cs8259b equ 09002h
data segment
cnt db 0
data ends
code segment 'code'
assume cs:code,ds:data,es:data
start: mov ax,data
mov ds,ax
mov es,ax
climov ax,0
mov ds,ax; 00000~003ffh
mov si, icw2*4
lea ax, int0 ;中斷服務程式位址
mov [si],ax
mov ax,cs
mov [si+2],ax
;add icw2,6h ;初始化int1
mov si, 66h*4
lea ax, int1
mov [si],ax
mov ax,cs
mov [si+2],ax
mov al, icw1;初始化8259
mov dx, cs8259a
out dx,al
mov al,icw2; 中斷向量
mov dx,cs8259b
out dx,al
mov al, icw4; 00011011 icw4
out dx,al
mov dx,cs8259b
mov al,ocw1;中斷遮蔽字
out dx,al
mov dx,nout
mov al,cnt
out dx,al
sti
li: nop
jmp li
;中斷服務程式
int0 proc
cliinc cnt
cmp cnt,10h
jnz int_next
mov cnt,0
int_next:mov al, cnt
mov dx,nout
out dx,al
mov dx,cs8259a ;非自動結束方式,傳送結束eoi命令
mov al,20h
out dx,al
stiiret
int0 endp
int1 proc
cliadd cnt,10h
cmp cnt,90h
jnz int_next1
mov cnt,0h
int_next1:mov al, cnt
mov dx,nout
out dx,al
mov dx,cs8259a ;非自動結束方式,傳送結束eoi命令
mov al,20h
out dx,al
stiiret
int1 endp
code ends
end start
nout equ 8000h ; 數碼管輸出位址
icw1 equ 00010011b ; 單片8259, 上公升沿中斷, 要寫icw4
icw2 equ 01100000b ; 中斷號為60h
icw4 equ 00011001b ; 工作在8086/88 方式
ocw1 equ 10111110b ; 中斷遮蔽字,只響應int0 int6中斷
cs8259a equ 09000h ; 8259位址
cs8259b equ 09002h
data segment
cnt db 0
data ends
code segment 'code'
assume cs:code,ds:data,es:data
start: mov ax,data
mov ds,ax
mov es,ax
climov ax,0
mov ds,ax; 00000~003ffh
mov si, icw2*4
lea ax, int0 ;中斷服務程式位址
mov [si],ax
mov ax,cs
mov [si+2],ax
;add icw2,6h ;初始化int1
mov si, 66h*4
lea ax, int1
mov [si],ax
mov ax,cs
mov [si+2],ax
mov al, icw1;初始化8259
mov dx, cs8259a
out dx,al
mov al,icw2; 中斷向量
mov dx,cs8259b
out dx,al
mov al, icw4; 00011011 icw4
out dx,al
mov dx,cs8259b
mov al,ocw1;中斷遮蔽字
out dx,al
mov dx,nout
mov al,cnt
out dx,al
sti
li: nop
jmp li
;中斷服務程式
int0 proc
go0:
add cnt,10h
mov al, cnt
mov dx,nout
out dx,al
stimov cx,10000 ;延時
loop $
jmp go0
mov dx,cs8259a ;非自動結束方式,傳送結束eoi命令
mov al,20h
out dx,al
stiiret
int0 endp
int1 proc
go1:
inc cnt
cmp cnt,10h
jnz int_next
mov cnt,0
int_next:
mov al, cnt
mov dx,nout
out dx,al
stimov cx,10000 ;延時
loop $
jmp go1
mov dx,cs8259a ;非自動結束方式,傳送結束eoi命令
mov al,20h
out dx,al
stiiret
int1 endp
code ends
end start
8259中斷實驗
利用系統匯流排上中斷請求訊號pci intr,設計乙個單中斷應用。使用單次脈衝模擬中斷產生。編寫中斷處理程式,在顯示器螢幕上顯示乙個字元 9 實驗程式清單 intr ivadd equ 003ch intr對應的中斷向量位址 stack1 segment stack dw 256 dup stack...
8086彙編學習筆記9 中斷
中斷訊號可以來自cpu內部或外部。一.8086cpu內部中斷訊號有 1 除法錯誤 2 單步執行 3 執行into指令 4 執行int指令 1.中斷碼 8086用乙個位元組來描述中斷碼,可以表示256中不同的中斷資訊。除法錯誤中斷碼為0 單步執行中斷碼為1 執行into指令中斷碼為4 執行int n指...
8086彙編學習筆記9 中斷
中斷訊號可以來自cpu內部或外部。一.8086cpu內部中斷訊號有 1 除法錯誤 2 單步執行 3 執行into指令 4 執行int指令 1.中斷碼 8086用乙個位元組來描述中斷碼,可以表示256中不同的中斷資訊。除法錯誤中斷碼為0 單步執行中斷碼為1 執行into指令中斷碼為4 執行int n指...