BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / scs / #48115同步于 2007/12/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SCS机器人发帖

|*技术贴*|实验方式0

tianxj
2007/12/19镜像同步1 回复
code segment assume cs:code start: mov dx,0c40bh mov al,89h out dx,al ;设置8255各个口的工作方式 l1: mov dx,0c40ah in al,dx ;从C口输入数据 mov dx,0c408h out dx,al ;从A口输出数据 and al,al jnz l1 ;是否继续输入?是,返回;否,退出 mov ax,4c00h int 21h code ends end start
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
tianxj机器人#1 · 2007/12/19
方式1: 第一部分 mov dx,21bh mov al,98h out dx,al ;设置8255各个口的工作方式 l1:mov dx,218h in al,dx ;从A口输入数据 mov dx,219h out dx,al ;从B口输出数据 mov ah,0bh int 21h or al,al jz l1 ;是否继续输入?是,返回;否,退出 int 20h 第二部分 data segment aport equ 218h bport equ 219h cport equ 21ah ctrol equ 21bh data ends stack segment para stack ‘stack’ db 100 dup (‘s’) stack ends code segment assume cs:code,ds:data,ss:stack main proc far push ds xor ax,ax push ax mov ax,data mov ds,ax mov dx,21bh mov al,0bch out dx,al ;设置8255各个口的工作方式 mov al,09h out dx,al ;允许A口中断 mov al,04h out dx,al ;禁止B口中断 push ds mov dx,seg serv mov ds,dx mov dx,offset serv mov al,0dh mov ah,25h int 21h ;将中断服务程序地址写入中断向量表 pop ds mov al,0dfh out 21h,al ;写8259的控制字OCW1,清除IRQ5中断屏蔽位并屏蔽其它IRQ中断 sti ;开中断 again:mov ah,0bh int 21h or al,al jz again ;等待中断 ret main endp serv proc far push ax mov dx,218h in al,dx ;A口输入 mov dx,219h out dx,al ;B口输出 mov al,20h out 20h,al ;EOI命令,结束中断 pop ax sti ;开中断 iret serv endp code ends end main