1.使用8250作串行接口时,若要求以1200bs的波特率发送一个字符,字符格式为 7个数据位,一个停止位,一个奇校验位,试编写初始化程序。 Mov DX, 3FBH 线路控制寄存器 MOV AL,1000000B;访问波特率因子寄存器 DX, AL MOV DX, 3F8H ;设置分频系数低字节 MOV AL, 60H OUT DX, AL INC DX 设置分频系数高字节 MOV AL, 0 OuT DX, AL lOV DX, 3FBH 线路控制寄存器 MOV AL,00001010B 7个数据位,一个停止位,一个奇校验位 OUT DX, AL 2.设8255的端口A、B、C和控制寄存器的地址为F4H、F5H、F6H、FTH,要使A口工 作于方式0输出,B口工作于方式1输入,C口上半部输入,下半部输出,且要求初始 化时PC6=0,试编写初始化程序。 MOV AL,10001110B A方式0输出,B方式1输入,C高输入低输出 OUT OFTH, AL MOV AL,00001100B PC6置0 OUT OFTH, AL 3.试述8237的DMA请求/响应握手过程。 答:当外设要求以DMA方式为它服务时,发DMA请求信号DREQ到DMAC。DMAC检查该信 号是否被屏蔽及其优先权,如确认该信号有效则向CPU发送总线请求信号HRQ(连到 CPU的HOLD);每个总线周期结束时CPU检测HOLD,如为高电平,则响应HOLD请求进入 保持态,使三态总线CPU侧呈高阻状态,并以总线保持响应信号LDA通知DMAC 4.使用8237的通道3,实现从内存到I/0设备的传送,其中传送的数据所在的内存单 元为2000y20FFH MOV AL, 0 清除先/后触发器 OUT OCH, AL OUT 6, AL 地址20000的低16位写入基地址寄存器 OUT 6, AL MOV AL, 2 OUT 83H, AL 地址20000的高4位写入页面寄存器 MOV AX, 1000H 传送的字节数 DEC AX Mov 7, AL ;写入基字节计数器 MOV AL
1. 使用8250作串行接口时,若要求以1200bps的波特率发送一个字符,字符格式为 7个数据位,一个停止位,一个奇校验位,试编写初始化程序。 MOV DX, 3FBH ;线路控制寄存器 MOV AL, 10000000B ;访问波特率因子寄存器 OUT DX, AL MOV DX, 3F8H ;设置分频系数低字节 MOV AL, 60H OUT DX, AL INC DX ;设置分频系数高字节 MOV AL, 0 OUT DX, AL MOV DX, 3FBH ;线路控制寄存器 MOV AL, 00001010B ;7个数据位,一个停止位,一个奇校验位 OUT DX, AL 2. 设8255的端口A、B、C和控制寄存器的地址为F4H、F5H、F6H、F7H,要使A口工 作于方式0输出,B口工作于方式1输入,C口上半部输入,下半部输出,且要求初始 化时PC6=0,试编写初始化程序。 MOV AL, 10001110B ;A方式0输出,B方式1输入,C高输入低输出 OUT 0F7H,AL MOV AL, 00001100B ;PC6置0 OUT 0F7H,AL 3. 试述8237的DMA请求/响应握手过程。 答:当外设要求以DMA方式为它服务时,发DMA请求信号DREQ到DMAC。DMAC检查该信 号是否被屏蔽及其优先权,如确认该信号有效则向CPU发送总线请求信号HRQ(连到 CPU的HOLD);每个总线周期结束时CPU检测HOLD,如为高电平,则响应HOLD请求进入 保持态,使三态总线CPU侧呈高阻状态,并以总线保持响应信号HLDA通知DMAC。 4. 使用8237的通道3,实现从内存到I/O设备的传送,其中传送的数据所在的内存单 元为20000H~20FFFH。 MOV AL, 0 ;清除先/后触发器 OUT 0CH, AL OUT 6, AL ;地址20000H的低16位写入基地址寄存器 OUT 6, AL MOV AL, 2 OUT 83H, AL ;地址20000H的高4位写入页面寄存器 MOV AX, 1000H ;传送的字节数 DEC AX MOV 7, AL ;写入基字节计数器 MOV AL, AH
OUT 7 AL MOV AL,01001011B 写模式寄存器 OuT OBH, AL MOV AL,00000011B 清除通道3屏蔽 OUT OAH, AL WAIT IN 08, AL 读状态寄存器 测试通道3状态 JZ WAIT MOV AL,00000111B 完成后屏蔽通道3 OUT OAH, AL
OUT 7, AL MOV AL, 01001011B ;写模式寄存器 OUT 0BH, AL MOV AL, 00000011B ;清除通道3屏蔽 OUT 0AH, AL WAIT: IN 08, AL ;读状态寄存器 AND AL, 08 ;测试通道3状态 JZ WAIT MOV AL, 00000111B ;完成后屏蔽通道3 OUT 0AH, AL