地址为60H到67H 8259的ICW2
时间: 2024-04-02 15:34:26 浏览: 15
8259的ICW2是初始化控制字2,用于设置8259的中断向量号。对于主芯片,ICW2的值应该设置为中断向量号的基地址,即在0-7之间的一个整数。对于从芯片,ICW2的值应该设置为主芯片的IR2所对应的中断向量号。
对于主芯片的ICW2,地址为0x20,对应的中断向量号为0x20(即32),因此ICW2的值应该设置为0x20。对于从芯片的ICW2,地址为0xA0,对应的中断向量号为0x28(即40),因此ICW2的值应该设置为0x28。
在8259的ICW1中,如果设置了是否需要级联的位(位3)为0,则从芯片的ICW2才有意义。如果设置为1,则从芯片的ICW2将被忽略。
相关问题
试按照如下要求对8259 A设置初始化命令字,系统中有一片8259A,中断请求信号用电平触发方式,中断类型码为60H,61H……67H,用特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式,CPU为8086,8259A的端口地址为93H,94H。
对8259A进行初始化命令字的步骤如下:
1. 将ICW1写入端口地址93H,设定中断控制器工作在初始化模式,并且使用边沿触发方式。
```
mov al, 00010001b ; ICW1,设置边沿触发方式,需要ICW4
out 93h, al
```
2. 将ICW2写入端口地址94H,设置中断类型码的基地址为60H。
```
mov al, 60h ; ICW2,设置中断类型码的基地址
out 94h, al
```
3. 将ICW3写入端口地址94H,将主片的IRQ0连接从片的IRQ2引脚。
```
mov al, 00000100b ; ICW3,将主片的IRQ0连接从片的IRQ2
out 94h, al
```
4. 将ICW4写入端口地址94H,设置特殊全嵌套方式和中断自动结束方式。
```
mov al, 00000011b ; ICW4,设置特殊全嵌套方式和中断自动结束方式
out 94h, al
```
5. 对每个中断请求线进行屏蔽或放开。
```
mov al, 11111111b ; OCW1,屏蔽所有中断请求
out 21h, al
mov al, 00000000b ; OCW1,放开IRQ0中断请求
out 21h, al
```
以上代码适用于8086 CPU。在实际应用中,还需根据具体需求进行修改。
1.利用BIOS中断将串行接口初始化为9600波特,8位数据位,1位停止位,偶校验。 2.该程序中数据段定义如下: DSEG SEGMENT STRG DB‘I AM A TEACHER!’,‘$’ MSPA DB 2DUP(?) NUM DB 1,2,3,4,5,6,7,8 DISP DW 2 DSEG ENDS (1)执行下列指令段后 LEA BX,NUM ADD BX,DISP MOV AX,WORD PTR[BX] AX= ______H , BX=_______H (2)执行下列指令段后 XOR BX,BX MOV AX,[DISP] MOV SI,OFFSET NUM ADD BX,WORD PTR[SI] AX=________H ,BX=_______H 3.请按照如下要求对8259A设置初始化命令字:系统中有一片8259A,中断请求信号用电平触发方式;下面要用ICW4设置嵌套及中断结束方式等状态,中断类型码为60H~67H,用特殊全嵌套方式,无缓冲,采用中断自动结束方式。8259A的端口地址为94H、95H。 4.在ADDR单元中存放着16位数Y的地址,请编程将Y中1的个数存入COUNT单元中
1. 利用BIOS中断将串行接口初始化为9600波特,8位数据位,1位停止位,偶校验。
```
MOV AL, 00h ;设置串口COM1
MOV AH, 00h ;设置波特率9600
MOV DX, 3F8h ;设置串口端口地址
MOV BL, 00h ;设置数据位为8位
MOV BH, 01h ;设置停止位为1位
MOV CL, 06h ;设置偶校验
INT 14h ;BIOS中断初始化串口
```
2. 该程序中数据段定义如下:
```
DSEG SEGMENT
STRG DB 'I AM A TEACHER!', '$'
MSPA DB 2DUP ('?')
NUM DB 1, 2, 3, 4, 5, 6, 7, 8
DISP DW 2
DSEG ENDS
```
(1)执行下列指令段后
```
LEA BX, NUM
ADD BX, DISP
MOV AX, WORD PTR[BX]
```
AX=0607H , BX=0006H
(2)执行下列指令段后
```
XOR BX, BX
MOV AX, [DISP]
MOV SI, OFFSET NUM
ADD BX, WORD PTR[SI]
```
AX=0201H ,BX=0009H
3. 请按照如下要求对8259A设置初始化命令字:系统中有一片8259A,中断请求信号用电平触发方式;下面要用ICW4设置嵌套及中断结束方式等状态,中断类型码为60H~67H,用特殊全嵌套方式,无缓冲,采用中断自动结束方式。8259A的端口地址为94H、95H。
```
MOV AL, 11B ;ICW1,边沿触发,级联从片
OUT 094H, AL ;发出ICW1
MOV AL, 60H ;ICW2,主片中断类型码为60H
OUT 095H, AL ;发出ICW2
MOV AL, 04H ;ICW3,主片IR2连接从片
OUT 095H, AL ;发出ICW3
MOV AL, 01H ;ICW4,特殊全嵌套方式,无缓冲,中断自动结束方式
OUT 095H, AL ;发出ICW4
```
4. 在ADDR单元中存放着16位数Y的地址,请编程将Y中1的个数存入COUNT单元中。
```
MOV AX, [ADDR] ;将Y的值读入AX
MOV BX, 0001H ;将BX的值初始化为1
MOV CX, 0000H ;将CX的值初始化为0
LOOP1:
AND AX, BX ;判断AX的最低位是否是1
SHR AX, 1 ;将AX右移一位
ADD CX, AX ;如果最低位是1,增加计数器
CMP AX, 0000H ;如果AX等于0,说明已经统计完毕
JZ EXIT
JMP LOOP1
EXIT:
MOV [COUNT], CX ;将计数器的值存入COUNT
```