您的当前位置:首页正文

基于8251双机通信设计

2022-04-23 来源:我们爱旅游


微机原理课程设计报告

课题名称:基于8251双机通信设计 姓 名: 张文涛 0705074018

周 勇 0705074006

伍安全 0705074017 专 业: 07自动化(2)班 指导老师:刘 伟 林泽坤

基于8251双机通信的设计任务书 论文 题目 主要内容及目标 基于8251双机通信的设计 设计 导师刘 伟 类型 姓名 林泽坤 1、掌握8251在半双工方式下双机串行通讯的软件编制及硬件连接技术 2、微机两台 (一台为发送机,一台为接收机) 本题目需用两台8086教学机,并通过各自的RS-232C接口用RS-232C通讯电缆将两台机器相连,如图所示。 其中Ⅰ号机用作接收机,利用8253的1#通道产生接收时钟;Ⅱ号机用作发送机,利用8253的1#通道产生发送时钟。本题目的是将Ⅱ号机中3000-3009H十个单元中的代码传送到Ⅰ号机的3000-3009H单元中。 具有的设计条件计划设计进程1. PC机一台,EL教学实验箱一台及汇编程序; (按课程设计周计算) 第一周设计任务:(1):明确课题对程序功能,运算精度等方面的要求及硬件条件 (2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。 (3):存储器资源分配 第二周设计任务:(4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序 (5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。 《微型计算机原理及接口技术》中国科技大学出版社 吴秀清 周荷琴编著 《16-32位微型计算机技术及应用》清华大学出版社 戴梅萼 史嘉权 编著 <<汇编语言程序设计》南京大学出版社 姚君遗编著 《汇编语言程序设计教程》清华大学出版社 杨记文编著 《微型计算机原理及接口技术》实验指导书 参考文献 1

摘要

本题是基于8251的双机通信的设计,8251芯片是我们上课所学的芯片之一,试验中我们也学习了该芯片的相关应用,如实现8251的串口自发自收。我们组选择该题的目的通过该题的设计进一步学习8251的工作原理和控制方式以及串口的传送原理。设计的硬件基础是星研集成开发环境,是以8086微处理器核心控制8251A芯片实现双机的串行通信;软件设计是在汇编语言基础上,要求设计者熟练8086指令集及汇编语言的编程特点。

设计的主要内容实现双机间的通信,设计中使用两个相同模块一端为发射机另一端为接

收机;模块以8086最小系统为核心,设计通过各自的RS-232C接口用RS-232C通讯电缆将两台机器相连,设计采用半双工查询方式,异步传送,一方定义为发送器,另一方为接收器。当发送端CPU查询到TxRDY有效时,向825lA并行输出一字节数据;接收端CPU每查询到RxRDY有效,则从8251A并行输入一个字节数据,一直进行到全部数据传送完为止,由8253可编程计数/定时器提供8251A可编程串口通信器接受和发送时钟频率;设计的最终目的是将Ⅱ号机中3000-3009H十个单元中的代码传送到Ⅰ号机的3000-3009H单元中。

关键字:微处理器 串行通信 汇编 双机通信

2

目录

1课题简介........................................................................................................................................ 4

1.1 课题内容 ......................................................................................................................... 4 1.2 课题意义 ......................................................................................................................... 4 2方案论证........................................................................................................................................ 4

2.1 8251A的基本性能 .......................................................................................................... 5 2.2 8251A的内部结构 .......................................................................................................... 5 2.3 8251A的引脚功能 .......................................................................................................... 7 2.4 8251A的编程 .................................................................................................................. 9 3设计方案...................................................................................................................................... 10

3.1 方案分析 ....................................................................................................................... 10 3.2 硬件设计 ....................................................................................................................... 11 3.3 软件设计 ....................................................................................................................... 11 4 总结 ............................................................................................................................................ 12 参考文献......................................................................................................................................... 13 附录一 ............................................................................................................................................ 14 附录二 ............................................................................................................................................ 15 附录三 ............................................................................................................................................ 16

3

1课题简介

1.1 课题内容

1、掌握8251在半双工方式下双机串行通讯的软件编制及硬件连接技术 2、微机两台 (一台为发送机,一台为接收机)

本题目需用两台8086教学机,并通过各自的RS-232C接口用RS-232C通讯电缆将两台机器相连,如图所示。

其中Ⅰ号机用作接收机,利用8253的1#通道产生接收时钟;Ⅱ号机用作发送机,利用8253的1#通道产生发送时钟。本题目的目的是将Ⅱ号机中3000-3009H十个单元中的代码传送到Ⅰ号机的3000-3009H单元中。

1.2 课题意义

串口通信是微机原理和接口技术课程的重点,与并口通信它有着众多的优点是各种数据传输的主流的方式,学好串行是很有必要的这也是我们选择该课题的原因之一。这次的课程设计的主要目的如下:

1、学习串口通信的工作原理,利用8086、8251实现双机的串行通信。 2、通过本次课程的设计我们要进一步了解8086、8251。加强理论与实际的联系,提高我们的设计与运用所学知识的能力。

3、通过设计了解并掌握汇编语言的设计方法和设计流程。

2方案论证

本次设计中主要使用了可编程串行接口芯片8251A,下面就8251A对设计方案进行论证。

4

2.1 8251A的基本性能

8251A是可编程的串行通信接口芯片,基本性能: 1.两种工作方式:

同步方式,异步方式。同步方式下,波特率为064K,异步方式下,波特率为0~19.2K。

2.同步方式下的格式

每个字符可以用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。

3.异步方式下的格式

每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率的1、16或64倍,用1位作为奇/偶校验。1个启动位。并能根据编程为每个数据增加1个、1.5个或2个停止位。可以检查假启动位,自动检测和处理终止字符。

4.全双工的工作方式

其内部提供具有双缓冲器的发送器和接收器。 5.提供出错检测

具有奇偶、溢出和帧错误三种校验电路。

2.2 8251A的内部结构

1、发送器

发送器由发送缓冲器和发送控制电路两部分组成。

采用异步方式,则由发送控制电路在其首尾加上起始位和停止位,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出。

8251A内部结构图

5

采用同步方式,则在发送数据之前,发送器将自动送出1个或2个同步字符,然后才逐位串行输出数据。

如果CPU与8251A之间采用中断方式交换信息,那么TXRDY可作为向CPU发出的中断请求信号。当发送器中的8位数据串行发送完毕时,由发送控制电路向CPU发出TXE有效信号,表示发送器中移位寄存器已空。

2.接收器

接收器由接收缓冲器和接收控制电路两部分组成。

接收移位寄存器从RXD引腿上接收串行数据转换成并行数据后存入接收缓冲器。

异步方式:在RXD线上检测低电平,将检测到的低电平作为起始位, 8251A开始进行采样,完成字符装配,并进行奇偶校验和去掉停止位,变成了并行数据后,送到数据输入寄存器,同时发出RXRDY信号送CPU,表示已经收到一个可用的数据。

同步方式:首先搜索同步字符。8251A监测RXD线,每当RXD线上出现一个数据位时,接收下来并送入移位寄存器移位,与同步字符寄存器的内容进行比较,如果两者不相等,则接收下一位数据,并且重复上述比较过程。当两个寄存器的内容比较相等时,8251A的SYNDET升为高电平,表示同步字符已经找到,同步已经实现。

采用双同步方式,就要在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后,再继续检测此后输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同。如果相同,则认为同步已经实现。

在外同步情况下,同步输入端SYNDET加一个高电位来实现同步的。 实现同步之后,接收器和发送器间就开始进行数据的同步传输。这时,接收器利用时钟信号对RXD线进行采样,并把收到的数据位送到移位寄存器中。在RXRDY引脚上发出一个信号,表示收到了一个字符。

3.数据总线缓冲器

数据总线缓冲器是CPU与8251A之间的数据接口。包含3个8位的缓冲寄存器:两个寄存器分别用来存放CPU向8251A读取的数据或状态信息。一个寄存器用来存放CPU向8251A写入的数据或控制。

4.读/写控制电路

读/写控制电路用来配合数据总线缓冲器的工作。功能如下: (1) 接收写信号WR,并将来自数据总线的数据和控制字写入8251A; (2) 接收读信号RD,并将数据或状态字从8251A送往数据总线;

6

(3) 接收控制/数据信号C/D,高电平时为控制字或状态字;低电平时为数据。 (4) 接收时钟信号CLK完成8251A的内部定时; (5) 接收复位信号RESET,使8251A处于空闲状态。 5.调制解调控制电路

调制解调控制电路用来简化8251A和调制解调器的连接。

2.3 8251A的引脚功能

1、8251A和CPU之间的连接信号

8251A和CPU之间的连接信号可以分为四类: a)片选信号

•CS:片选信号,它由CPU的地址信号通过译码后得到。 b)数据信号

D0-D7:8位,三态,双向数据线,与系统的数据总线相连。传输CPU对8251A的编程命令字和8251A送往CPU的状态信息及数据。 c)读/写控制信号 • 息。

• 息。

• C/D:控制/数据信号,用来区分当前读/写的是数据还是控制信息或状态信息。该信号也可看作是8251A数据口/控制口的选择信号。

由此可知,RD、WR、C/D这3个信号的组合,决定了8251A的具体操作,它们的关系如表7-3所示:

WR:写信号,低电乎时,

RD:读信号,低电平时, CPU当前正在从8251A读取数据或者状态信

CPU当前正在往8251A写入数据或者控制信

7

注:数据输入端口和数据输出端口合用同一个偶地址,而状态端口和控制端口合用同一个奇地址。

c)收发联络信号

• TXRDY:发送器准备好信号,用来通知CPU,8251A已准备好发送一个字符。

• TXE:发送器空信号,TXE为高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,说明一个发送动作已完成。

• RXRDY:接收器准备好信号,用来表示当前8251A已经从外部设备或调制解调器接收到一个字符,等待CPU来取走。因此,在中断方式时,RXRDY可用来作为中断请求信号;在查询方式时,RXRDY可用来作为查询信号。

• SYNDET:同步检测信号,只用于同步方式。 2.8251A与外部设备之间的连接信号 8251A与外部设备之间的连接信号分为两类: a) 收发联络信号 • • • •

DTRDSR:数据终端准备好信号,通知外部设备,CPU当前已经准备就绪。 :数据设备准备好信号,表示当前外设已经准备好。

CPU已经准备好发送。

RTS:请求发送信号,表示CTS

:允许发送信号,是对RTS的响应,由外设送往8251A。

实际使用时,这4个信号中通常只有CTS必须为低电平,其它3个信号可以悬空。

b) 数据信号

• TXD:发送器数据输出信号。当CPU送往8251A的并行数据被转变为串行数据后,通过TXD送往外设。

• RXD:接收器数据输入信号。用来接收外设送来的串行数据,数据进入8251A后被转变为并行方式。

3. 时钟、电源和地

8251A除了与CPU及外设的连接信号外,还有电源端、地端和3个时钟端。 • CLK:时钟输入,用来产生8251A器件的内部时序。 同步方式下,大于接收数据或发送数据的波特率的30倍, 异步方式下,则要大于数据波特率的4.5倍。 • TXD:发送器时钟输入,用来控制发送字符的速度。 同步方式下,TXC的频率等于字符传输的波特率,

8

异步方式下,TXC的频率可以为字符传输波特率的1倍、16倍或者64倍。 • RXD:接收器时钟输入,用来控制接收字符的速度,和TXC一样。 在实际使用时,RXC和TXC往往连在一起,由同一个外部时钟来提供,CLK则由另一个频率较高的外部时钟来提供。

• VCC:电源输入 • GND:地

2.4 8251A的编程

编程的内容包括两大方面:

一是由CPU发出的控制字,即方式选择控制字和操作命令控制字; 二是由8251A向CPU送出的状态字。 1.方式选择控制字(模式字) 方式选择控制字的格式如图所示。

2.操作命令控制字(控制字) 操作命令控制字的格式如下:

9

3、状态字

状态字的格式如下:

4.8251A的初始化

a)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。

b)如果模式字中规定了8251A工作在同步模式,

c)由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。

3设计方案

3.1 方案分析

1、接受发送时钟频率选择

方案一:采用外部时钟发生器,要额外添加时钟发生器,无法直接改变时钟频率,不方便使用。

方案二:采用集成环境自带的计数器8253工作在方式三输出一个时钟频率,可以通过程序控制产生的频率大小,方便快捷。 2、同步、异步选择

10

如果选择同步要在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后,再继续检测此后输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同,这样选择太过繁琐难度较大不易课程设计只好放弃同步采用异步的工作方式。

3、数据传送接受方式

方案一:采用中断方式,需要使用8259中断控制器,不利于程序的编写。 方案二:才用查询方法,发射机不停的查询TxRDY的状态,接收机不停的查询RxRDY的状态,这样来判断是否传送或接受完毕。 4、总体方案

采用两个8086最小系统为控制核心,以可编程串行控制器8251A为数据传输和接受芯片,8251A采用查询方法、异步传送、半双工通信。8253提供接受和传送的时钟频率。

3.2 硬件设计

1、硬件原理框图

2、硬件原理图 见附录一

3.3 软件设计

1、软件流程图 见附录二 2、程序清单 见附录三

11

4 总结

课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,是锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。回顾起此次微机原理课程设计,的确如此,从选题到定稿,从理论到实践,在整整两个星期的日子里,我们学到很多很多的的东西,同时巩固了以前所学过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的。在设计的过程中遇到问题是无法避免但克服困难的过程就是学习的过程,说到困难我想这次的课题设计的难点在于 8251A芯片的使用,以及相关软件的使用如:PRETOL,就本质还是对汇编语言掌握得不好……通过这次课程设计之后,我们每个人都有很大的进步。

12

致谢:

在这课程设计结束之际,我要感谢王敬生、刘伟和林泽坤三位老师,感谢王老师在上课时的认真仔细的讲解和在课程设计时的精心点拔,感谢两位课程设计指导老师他们的耐心指导和不厌辛苦的和我们奋斗到课程设计的结束,还要感谢学校给我们的这次机会。

参考文献

《微型计算机原理及接口技术》中国科技大学出版社 吴秀清 周荷琴编著 《16-32位微型计算机技术及应用》清华大学出版社 戴梅萼 史嘉权 编著 《汇编语言程序设计》南京大学出版社 姚君遗编著 《汇编语言程序设计教程》清华大学出版社 杨记文编著 《微型计算机原理及接口技术》实验指导书

13

附录一

8086最小系统图:

系统原理图:

14

附录二

程序流程图:

15

附录三

1、双机串行通信发送机源程序 .MODEL

TINY

;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bps PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址) Vendor_ID EQU Device_ID EQU

.DATA

;控制字或状态字 ;读写数据

10EBH ;厂商ID号 8376

;设备ID号

.STACK 100

CTL_ADDR DW 00F1H W_8253_T0 DW 00B0H W_8253_C DW 00B3H ORG 3000H

DATA_ADDR DW 00F0H

;计数器0地址 ;控制字

;MESS DB 'SEND & LOAD A DATA',0AH,0DH,'$' A1 DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,00H

IO_Bit8_BaseAddress DW msg0 msg1 msg2

.CODE ;

MOV DS,AX MOV ES,AX NOP

LEA DX,MESS

START: MOV AX,@DATA

?

DB 'BIOS不支持访问PCI $' DB '找不到Star PCI9052板卡 $' DB '读8位I/O空间基地址时出错$'

; MOV AH,9 ; INT 21H

CALL InitPCI

CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地CALL INIT_8253

16

CALL INIT_8251

START1:

MOV CX,10 CALL Send_Group CALL IfExit

;OUT1输出频率为1S的方波

JZ START1 JMP

Exit

INIT_8253 PROC NEAR MOV DX,W_8253_C MOV AL,37H

;定时器0,方式3

OUT DX,AL MOV DX,W_8253_T0 MOV AL,26H

;BCD码26(2000000/26)=16*4800 OUT DX,AL MOV AL,0 OUT DX,AL

RET

INIT_8253 ENDP

INIT_8251 PROC NEAR CALL RESET_8251 MOV DX,CTL_ADDR MOV AL,7EH ;波特率系数为16,8个数据位 OUT DX,AL ;一个停止位,偶校验 CALL DLTIME

;延时

MOV AL,11H

;只允许发送发送数据,清错误标志

OUT DX,AL CALL DLTIME

RET

INIT_8251 ENDP ;8251的复位

Reset_8251 PROC NEAR

MOV DX,CTL_ADDR

17

MOV AL,0 OUT DX,AL

;向控制口写入\"0\" CALL DLTIME ;延时,等待写操作完成 OUT DX,AL ;向控制口写入\"0\" CALL DLTIME ;延时 OUT DX,AL ;向控制口写入\"0\"

CALL DLTIME

;延时

MOV AL,40H

;向控制口写入复位字40H OUT DX,AL

CALL DLTIME

RET

Reset_8251 ENDP

;发送一组数据,CX--发送数目 Send_Group PROC NEAR LEA SI,A1

Send_Group1: LODSB

CALL Sendbyte LOOP Send_Group1

RET

Send_Group ENDP

;发送一个字节 Sendbyte PROC NEAR

PUSH AX

MOV DX,CTL_ADDR ;读入状态

Sendbyte1: IN AL,DX

TEST AL,01H JZ Sendbyte1

;允许数据发送吗? MOV DX,DATA_ADDR POP AX

;发送

OUT DX,AL

RET

Sendbyte

ENDP

18

;延时 DLTIME

PROC NEAR

PUSH AX PUSH DX MOV DX,1

;延时1ms MOV AH,0FFH

;星研公司提供的软中断

INT 21H POP DX POP AX

RET

DLTIME ENDP

IfExit

PROC NEAR

PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H POP DX POP AX

RET

IfExit

ENDP

InitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H

;清屏

MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2

LEA

DX,msg0

InitPCI1:

MOV AH,09H

INT 21H

19

JMP Exit

InitPCI2: MOV AH,0B1H

MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡

LEA DX,msg1 JMP

InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H MOV AL,09H INT 1AH

;读取该卡PCI9052基地址

JNC InitPCI4 LEA DX,msg2 JMP

InitPCI1

InitPCI4: AND

CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI

ENDP

ModifyAddress PROC NEAR ADD CTL_ADDR,CX ADD DATA_ADDR,CX ADD W_8253_T0,CX ADD W_8253_C,CX

RET ModifyAddress ENDP Exit: MOV AH,4CH

INT 21H

END START

20

2、双机通信接收机源程序 .MODEL

TINY

;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bps PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址) Vendor_ID EQU Device_ID EQU

.STACK 100 .DATA

;控制字或状态字 ;读写数据

10EBH ;厂商ID号 8376

;设备ID号

Receive_Buffer EQU 3000H

CTL_ADDR DW 00F1H W_8253_T0 DW 00B0H W_8253_C DW 00B3H

IO_Bit8_BaseAddress DW msg0 msg1 msg2

?

DATA_ADDR DW 00F0H

;计数器0地址 ;控制字

DB 'BIOS不支持访问PCI $' DB '找不到Star PCI9052板卡 $' DB '读8位I/O空间基地址时出错$'

//Receive_Buffer DB 10 DUP(0) ;接受缓冲器

.CODE

MOV DS,AX MOV ES,AX NOP

CALL InitPCI

START: MOV AX,@DATA

CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址

CALL INIT_8253 CALL INIT_8251

MOV CX,10

;OUT1输出频率为1S的方波

CALL Receive_Group CALL IfExit JZ START1

21

START1:

JMP Exit

INIT_8253 PROC NEAR MOV DX,W_8253_C MOV AL,37H

;定时器0,方式3

OUT DX,AL

MOV DX,W_8253_T0 MOV AL,26H

;BCD码26(2000000/26)=16*4800 OUT DX,AL MOV AL,0 OUT DX,AL

RET

INIT_8253 ENDP INIT_8251 PROC NEAR CALL RESET_8251 MOV DX,CTL_ADDR MOV AL,7EH ;波特率系数为16,8个数据位 OUT DX,AL ;一个停止位,偶校验 CALL DLTIME

;延时

MOV AL,14H

;只允许接收数据,清错误标志,

OUT DX,AL CALL DLTIME

RET

INIT_8251 ENDP

;8251的复位,对8251的控制口进行一次写入后须有恢复时间 Reset_8251 PROC NEAR

MOV DX,CTL_ADDR

MOV AL,0 OUT DX,AL

;向控制口写入\"0\" CALL DLTIME ;延时,等待写操作完成 OUT DX,AL ;向控制口写入\"0\" CALL DLTIME ;延时 OUT DX,AL ;向控制口写入\"0\"

CALL DLTIME

;延时

MOV AL,40H

;向控制口写入复位字40H

OUT DX,AL

22

CALL DLTIME

RET

Reset_8251 ENDP

;接受一组数据,CX--接受数目 Receive_Group PROC NEAR MOV DI,Receive_Buffer

Receive_Group1:

CALL Receive_Byte

STOSB

MOV AH,06H

MOV BX,3000H

INT 10H ;显示中断调用 LOOP Receive_Group1

RET

Receive_Group ENDP ;接受一个字节 Receive_Byte PROC NEAR

MOV DX,CTL_ADDR Receive_Byte1: IN AL,DX

;读入状态

TEST AL,02H JZ Receive_Byte1 ;有数据吗?

MOV DX,DATA_ADDR

;有

IN AL,DX

RET

Receive_Byte ENDP ;延时 DLTIME

PROC NEAR

PUSH AX PUSH DX MOV DX,1 ;延时1ms MOV AH,0FFH

;星研公司提供的软中断

INT 21H POP DX POP AX

RET

DLTIME

ENDP

23

IfExit PROC NEAR

PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H POP DX POP AX

RET

IfExit ENDP InitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H

;清屏

MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2

LEA

DX,msg0

InitPCI1:

MOV AH,09H

INT 21H JMP

Exit

InitPCI2:

MOV AH,0B1H

MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1 JMP

InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H

MOV AL,09H

24

INT 1AH ;读取该卡PCI9052基地址

JNC InitPCI4 LEA DX,msg2 JMP

InitPCI1

InitPCI4: AND

CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI ENDP

ModifyAddress PROC NEAR

ADD CTL_ADDR,CX ADD DATA_ADDR,CX ADD W_8253_T0,CX ADD W_8253_C,CX

RET

ModifyAddress ENDP

Exit: MOV AH,4CH INT 21H

END START

DOS系统25

;返回

因篇幅问题不能全部显示,请点此查看更多更全内容