一道关于8259的问题

xiaomaoqiqi 2007-01-06 03:39:21
在8259初始化程序中,已知了8259的奇地址端口和偶地址端口,在定义icw1和icw2的时候,都是将控制字输入到端口上,但是为什么在定义icw3和icw4的时候没有输入到端口上而是直接输出到dx寄存器中呢?

mov al,11h
MOV DX,0FFE8H; 这是偶地址端口
OUT DX,AL; 这是定义iCW1;

而定义icw3的时候,没有用到奇地址端口呢?
MOV AL,08H
OUT DX,AL ;定义icw3,直接输出到了dx中。但是dx这是并没有奇地址端口。
...全文
206 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sadanjingji 2007-01-07
  • 打赏
  • 举报
回复
你这个初始化程序不完整,初始化总是从ICW1开始,后面紧跟着ICW2,然后才是最后一个命令字(如果需要的话)。
所以,在定义ICW2时已经往DX送过端口值了,而ICW2,ICW3和ICW4具有相同的端口地址,所以没有必要再往DX写值。具体ICW2后面跟的是ICW3还是ICW4或者两者具备,那要看你ICW1的情况了,拿你这个例子来看,ICW1为11H,说明ICW3和ICW4都需要,故需要连续三次往端口0FFE9H送值,8259会分别接收为ICW2,ICW3,ICW4

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧