收藏 分享(赏)

微机系统实验报告.doc

上传人:精品资料 文档编号:10513564 上传时间:2019-11-24 格式:DOC 页数:24 大小:442.88KB
下载 相关 举报
微机系统实验报告.doc_第1页
第1页 / 共24页
微机系统实验报告.doc_第2页
第2页 / 共24页
微机系统实验报告.doc_第3页
第3页 / 共24页
微机系统实验报告.doc_第4页
第4页 / 共24页
微机系统实验报告.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、32 位微机系统与应用实验指南- 1 -西安电子科技大学实验报告课程名称 微机系统实验实验学时 6成绩评语:指导教师:年 月 日32 位微机系统与应用实验指南- 2 -实验一 汇编语言编程实验1 实验目的(1) 掌握汇编语言的编程方法(2) 掌握 DOS 功能调用的使用方法(3) 掌握汇编语言程序的调试运行过程2 实验内容(1) 将指定数据区的字符串数据以 ASCII 码形式显示在屏幕上,并通过 DOS 功能调用完成必要提示信息的显示。(2) 在屏幕上显示自己的学号姓名信息。(3) 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的 ASCII 码,直到输入”Q”或“q”时结束。(4) 自

2、主设计输入显示信息,完成编程与调试,演示实验结果。3 实验结果任务一4 程序流程图32 位微机系统与应用实验指南- 3 -5 程序代码任务一DATA SEGMENT NUMBER DB 03101214 SONG YUAN YUAN,0AH,0DH,$string1 DB 0AH,0DH, input q/Q to exit ,0AH,0DH,0AH,0DH,NUMBER AND NAME:,$string2 DB 0AH,0DH,Input: $RESULT DB 0AH,0DH,ASCII is :$SD DB DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:

3、DATASTART: MOV AX,DATA MOV DS,AXMOV DX,OFFSET string1 MOV AH,09HINT 21H MOV DX,OFFSET NUMBERINT 21HC1: MOV DX,OFFSET string2MOV AH,09H INT 21HMOV AH,01H INT 21HCMP AL,Q JZ EXITCMP AL,q JZ EXITMOV SD,AL MOV DX ,OFFSET RESULTMOV AH,09H INT 21HMOV SI,OFFSET SD MOV AL,DS:SIAND AL,0F0H MOV CL,4SHR AL,CL

4、CMP AL,0AHJB C2 ADD AL,07HC2: ADD AL,30H MOV DL,ALMOV AH,02H INT 21HMOV AL,DS:SI AND AL,0FHCMP AL,0AH JB C332 位微机系统与应用实验指南- 4 -ADD AL,07HC3: ADD AL,30HMOV DL,AL MOV AH,02HINT 21H loop C1EXIT: MOV AX,4C00H INT 21HCODE ENDS END START 实验二 数码转换实验.1 实验目的(1) 掌握不同进制数及编码相互转换的程序设计方法。(2) 掌握运算类指令编程及调试方法。(3) 掌握

5、循环程序的设计方法。2. 实验内容及说明(1) 重复从键盘输入不超过 5 位的十进制数,按回车键结束输入;(2) 将该十进制数转换成二进制数;结果以 16 进制数的形式显示在屏幕上;(3) 如果输入非数字字符,则报告出错信息,重新输入;(4) 直到输入“Q”或q时程序运行结束。键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。 任务二32 位微机系统与应用实验指南- 5 -流程图任务二 ; PAGE 60,132;本实验将输入的 ASCII码转换为二进制,要求输入位数小于 5DDATA SEGMENTMES DB 0AH,0DH,The ascii code of decim

6、al code are: $MSG1 DB 0AH,0DH,exit,input: q/Q ,0AH,0DH,0AH,0DH,$MSG2 DB 0AH,0DH,0AH,0DH,Input: $MSG3 DB 0AH,0DH,input error,0AH,0DH,$BUF DB 30H,30H,30H,31H,35HDB 10H DUP(0)N DW 0DDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DDATASTART: MOV AX,DDATAMOV DS,AXMOV ES,AXMOV DI,OFFSET BUFCLCMOV DX,OFFSET MSG1MO

7、V AH,09H INT 21H32 位微机系统与应用实验指南- 6 -A1: MOV AH,1 ;接收键盘输入INT 21HINC NSTOSB ;将输入数据存放在 BUF缓冲区中CMP AL,QJZ EXITCMP AL,qJZ EXITCMP AL,39HJA ERRORCMP AL,13JNE A1MOV CX,NDEC CXMOV BX,000AHMOV SI,OFFSET BUFMOV AH,0MOV DX,0LODSBCMP CX,1JE A3SUB AL,30H ;将 BUF中数据转换为二十进制数DEC CXA2: IMUL BXMOV DX,AXLODSBMOV AH,0A3

8、: SUB AL,30HADD AX,DXLOOP A2MOV SI,AXMOV DX,OFFSET MESMOV AH,09HINT 21HINC SI ;显示高字节CALL SHOWDEC SI ;显示低字节CALL SHOWMOV DX,OFFSET MSG2MOV AH,09HINT 21HMOV AX ,0stosb MOV AX ,0MOV CX ,0MOV BX ,0MOV DX,0MOV DI,OFFSET BUFCLCMOV N,0LOOP A1 EXIT: MOV AX,4C00HINT 21HERROR: MOV DX,OFFSET MSG3MOV AH,09HINT 2

9、1HMOV DX,OFFSET MSG2MOV AH,09HINT 21HJMP A1SHOW PROC NEARMOV AL,DS:SIAND AL,0F0H ;取高 4位MOV CL,4SHR AL,CLCMP AL,0AH ;是否是 A以上的数JB C2ADD AL,07HC2: ADD AL,30HMOV DL,AL ;show character MOV AH,02HINT 21HMOV AL,DS:SIAND AL,0FH ;取低 4位CMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,AL ;show character MOV AH,02

10、HINT 21HRETSHOW ENDPCODE ENDSEND START 32 位微机系统与应用实验指南- 7 -实验三 基本 IO 口扩展实验.1 实验目的了解 TTL 芯片扩展简单 I/O 口的方法,掌握数据输入输出程序编制的方法。2 实验内容74LS244 是一种三态输出的 8 总线缓冲驱动器,无锁存功能,当 G 为低电平时,Ai 信号传送到 Yi,当为高电平时,Yi 处于禁止高阻状态。其引脚图如下:74LS273 是一种带清除功能的 8D 触发器, 1D8D 为数据输入端,1Q8Q 为数据输出端,正脉冲触发,低电平清除,常用作 8 位地址锁存器。其引脚图如下:32 位微机系统与应用

11、实验指南- 8 -本实验要求用 74LS244 作为输入口,读取开关状态,并将此状态通过 74LS273 连接到发光二极管显示。具体实验内容如下:(1) 当开关 Yi 为低电平时对应的发光二极管点亮,Yi 为高电平时对应的发光二极管灭。(2) 当开关 Yi 全为高电平时,发光二极管 Qi 从左至右轮流点亮。(3) 当开关 Yi 全为低电平时,发光二极管 Qi 从右至左轮流点亮。(4) 自主设计控制及显示模式,完成编程调试,演示实验结果。32 位微机系统与应用实验指南- 9 -3 实验原理图图 3-2-1 74LS244 与 74LS273 扩展 I/O 口原理图实验连线图:图 3-2-2 扩展

12、 I/O 口连线图32 位微机系统与应用实验指南- 10 -4 代码MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA DATAIO_9054base_address DB 4 DUP(0) ;PCI 卡 9054 芯片 I/O 基地址暂存空间IO_base_address DB 4 DUP(0) ;PCI 卡 I/O 基地址暂存空间pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error !,0DH,0AH,$G

13、OOD DB 0DH,0AH,The Program is Executing !,0DH,0AH,$LS244 DW 00000H LS273 DW 00020HRA DB ?LB DB ?DELAY_SETEQU 0FFFH ;延时常数MY_DATA ENDsMY_CODE SEGMENT PARA CODEMY_PROC PROC FARASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACKMAIN:.386 ;386 模式编译MOV AX,MY_DATAMOV DS,AXMOV ES,AXMOV AX,MY_STACKMOV SS,AXCALL FINDP

14、CI ;自动查找 PCI 卡资源及 IO 口基址MOV CX,word ptr IO_base_addressADD LS244,CX ;PCI 卡 IO 基址+偏移ADD LS273,CX ;自己的程序 MOV RA,7FH MOV LB,0FEHREAD1: MOV DX,LS244 ;读取开关状态IN AL,DXCMP AL,0FFHJZ A1CMP AL,00HJZ A2NOT AL ;取反MOV DX,LS273OUT DX,AL ;送 LED 显示CALL DELAYCALL BREAKJMP READ1A1: MOV AL,0FEHMOV DX,LS273OUT DX,ALCAL

15、L DELAYCALL BREAKMOV AL,0FDHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FBHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0F7HMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0EFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0DFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0BFHMOV DX,LS273

16、OUT DX,ALCALL DELAYCALL BREAKMOV AL,07FHMOV DX,LS273OUT DX,AL32 位微机系统与应用实验指南- 11 -CALL DELAYCALL BREAKJMP READ1A2: MOV AL,7FHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0BFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0DFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0EFHMOV DX,LS273OUT DX,

17、ALCALL DELAYCALL BREAKMOV AL,0F7HMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FBHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FDHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FEHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKJMP READ1MY_PROC ENDpBREAK PROC NEAR ;按任意键退出PUSHFPUSH AXPUSH DX MOV AH

18、,06HMOV DL,0FFH INT 21HJE RETURNMOV AX,4C00HINT 21HRETURN: POP DXPOP AXPOPFRETBREAK ENDPDELAY PROC NEAR ;延时程序PUSHFPUSH DXPUSH CXMOV DX,DELAY_SETD1: MOV CX,-1D2: DEC CX JNZ D2DEC DX JNZ D1POP CX POP DXPOPF RETDELAY ENDp;FUNCTION CODEIO_port_addre EQU 0CF8H ;32 位配置地址端口IO_port_data EQU 0CFCH ;32 位配置数据端

19、口IO_PLX_ID EQU 200810B5H ;PCI 卡设备及厂商 IDBADR0 = 10H ;基地址寄存器 0BADR1 = 14H ;基地址寄存器 1BADR2 = 18H ;基地址寄存器 2BADR3 = 1CH ;基地址寄存器 3FINDPCI PROC NEAR ;查找 PCI 卡资源并显示PUSHADPUSHFD32 位微机系统与应用实验指南- 12 -MOV EBX,080000000HFINDPCI_next:ADD EBX,100HCMP EBX,081000000HJNZ findpci_continueMOV DX,offset pcicardnotfind ;显

20、示未找到 PCI 卡提示信息MOV AH,09HINT 21HMOV AH,4CHINT 21H ;退出findpci_continue:MOV DX,IO_port_addreMOV EAX,EBXOUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口CMP EAX,IO_PLX_IDJNZ findpci_next ;检查是否发现 PCI 卡MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR1OUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口MOV dword

21、 ptr IO_9054base_address,EAXAND EAX,1JZ findPCI_nex ;检查是否为 i/o 基址信息 MOV EAX,dword ptr IO_9054base_addressAND EAX,0fffffffeh MOV dword ptr IO_9054base_address,EAX ;去除 i/o 指示位并保存 MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR2OUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口MOV dword ptr IO_base_address

22、,EAXAND EAX,1JZ findPCI_next ;检查是否为 i/o 基址信息 MOV EAX,dword ptr IO_base_addressAND EAX,0fffffffehMOV dword ptr IO_base_address,EAX ;去除 i/o 指示位并保存MOV DX,offset good ;显示开始执行程序信息MOV AH,09HINT 21HPOPfdPOPadRETfindPCI ENDPMY_CODE ENDSEND MAIN5 实验结果: 发光二极管 Qi 从右至左轮流点亮实验四 可编程并行接口 8255 实验.1 实验目的了解可编程并行接口芯片 8

23、255 的内部结构、工作方式、初始化编程及应用。.2 实验内容(1) 流水灯实验:利用 8255 的 A 口、B 口循环点亮发光二极管。(2) 交通灯实验:利用 8255 的 A 口模拟交通信号灯。(3) I/O 输入输出实验:利用 8255 的 A 口读取开关状态,8255 的 B 口把状态送发光二极管显示。(4) 通过开关控制交通红绿灯的亮灭。(5) 通过开关控制流水灯的循环方向和循环方式。32 位微机系统与应用实验指南- 13 -3 流水灯实验原理图4 代码MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGM

24、ENT PARA DATAIO_9054base_address DB 4 DUP(0) ;PCI卡 9054芯片 I/O基地址暂存空间IO_base_address DB 4 DUP(0) ;PCI卡 I/O基地址暂存空间pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error !,0DH,0AH,$GOOD DB 0DH,0AH,The Program is Executing !,0DH,0AH,$;LS244 DW 00000H LS273 DW 00020HLS8255 DW 00000HLS8255

25、W DW 00003HRA DB ?LB DB ?DELAY_SETEQU 0FFFH ;延时常数MY_DATA ENDsMY_CODE SEGMENT PARA CODEMY_PROC PROC FARASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACKMAIN:.386 ;386模式编译 MOV AX,MY_DATAMOV DS,AXMOV ES,AXMOV AX,MY_STACKMOV SS,AXCALL FINDPCI ;自动查找 PCI卡资源及 IO口基址MOV CX,word ptr IO_base_addressADD LS8255,CX ;PCI

26、卡 IO基址+偏移ADD LS8255W,CX ;自己的程序 MOV RA,7FHMOV LB,0FEH READ1: MOV AX,80H ;读取开关状态MOV DX,LS8255WOUT DX,AXMOV DX,LS8255MOV AL,0FEHOUT DX,ALCALL DELAYCALL BREAKMOV AL,0FDHMOV DX,LS8255OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FBH图 6-3-6 流水灯实验32 位微机系统与应用实验指南- 14 -MOV DX,LS8255OUT DX,ALCALL DELAYCALL BREAKMOV AL

27、,0F7HMOV DX,LS8255OUT DX,ALCALL DELAYCALL BREAKMOV AL,0EFHMOV DX,LS8255OUT DX,ALCALL DELAYCALL BREAKMOV AL,0DFHMOV DX,LS8255OUT DX,ALCALL DELAYCALL BREAKMOV AL,0BFHMOV DX,LS8255OUT DX,ALCALL DELAYCALL BREAKMOV AL,07FHMOV DX,LS8255OUT DX,ALCALL DELAYCALL BREAKJMP READ1;NOT AL ;取反;MOV DX,LS273;OUT DX,

28、AL ;送 LED显示;CALL DELAY;CALL BREAK;JMP READ1MY_PROC ENDpBREAK PROC NEAR ;按任意键退出PUSHFPUSH AXPUSH DX MOV AH,06HMOV DL,0FFH INT 21HJE RETURNMOV AX,4C00HINT 21HRETURN: POP DXPOP AXPOPFRETBREAK ENDPDELAY PROC NEAR ;延时程序PUSHFPUSH DXPUSH CXMOV DX,DELAY_SETD1: MOV CX,-1D2: DEC CX JNZ D2DEC DX JNZ D1POP CX PO

29、P DXPOPF RETDELAY ENDp;FUNCTION CODEIO_port_addre EQU 0CF8H ;32位配置地址端口IO_port_data EQU 0CFCH ;32位配置数据端口IO_PLX_ID EQU 200810B5H ;PCI卡设备及厂商 IDBADR0 = 10H ;基地址寄存器 0BADR1 = 14H ;基地址寄存器 1BADR2 = 18H ;基地址寄存器 2BADR3 = 1CH ;基地址寄存器 3FINDPCI PROC NEAR ;查找 PCI卡资源并显示PUSHADPUSHFDMOV EBX,080000000HFINDPCI_next:AD

30、D EBX,100HCMP EBX,081000000HJNZ findpci_continueMOV DX,offset pcicardnotfind ;显示未找到 PCI卡提示信息MOV AH,09HINT 21HMOV AH,4CH32 位微机系统与应用实验指南- 15 -INT 21H ;退出findpci_continue:MOV DX,IO_port_addreMOV EAX,EBXOUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口CMP EAX,IO_PLX_IDJNZ findpci_next ;检查是否发现 PCI卡MOV D

31、X,IO_port_addreMOV EAX,EBX ADD EAX,BADR1OUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口MOV dword ptr IO_9054base_address,EAXAND EAX,1JZ findPCI_next ;检查是否为 i/o基址信息MOV EAX,dword ptr IO_9054base_addressAND EAX,0fffffffehMOV dword ptr IO_9054base_address,EAX ;去除 i/o指示位并保存MOV DX,IO_port_addreMOV EAX,

32、EBXADD EAX,BADR2OUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口MOV dword ptr IO_base_address,EAXAND EAX,1JZ findPCI_next ;检查是否为 i/o基址信息MOV EAX,dword ptr IO_base_addressAND EAX,0fffffffehMOV dword ptr IO_base_address,EAX ;去除 i/o指示位并保存MOV DX,offset good ;显示开始执行程序信息MOV AH,09HINT 21HPOPfdPOPadRETfind

33、PCI ENDPRIGHT: MOV AL,0FEHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FDHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FBHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0F7HMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0EFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0DFHMOV DX,LS273OU

34、T DX,ALCALL DELAYCALL BREAKMOV AL,0BFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,07FHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKJMP READ1LEFT: MOV AL,7FHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAK32 位微机系统与应用实验指南- 16 -MOV AL,0BFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0DFHMOV DX,LS273OUT DX,

35、ALCALL DELAYCALL BREAKMOV AL,0EFHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0F7HMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FBHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FDHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKMOV AL,0FEHMOV DX,LS273OUT DX,ALCALL DELAYCALL BREAKJMP READ1MY_CODE E

36、NDSEND MAIN5 实验结果: 发光二极管 Qi 轮流点亮实验五 可编程定时器/计数器 8254(8253)实验.1 实验目的(1)掌握 8254 定时/计数器的编程方法。(2)学习 8254 的几种工作方式。(3)了解计数器的硬件连接及时序关系。.2 实验内容(1)将 32Hz 的晶振频率作为 8254 的时钟输入,利用定时器 8254 产生 1Hz 的方波,用发光二极管显示输出结果(发光二极管闪烁) 。(2)开关控制结束程序执行,发光二极管熄灭。(3)开关控制发光二极管闪烁的速度(输出不同频率的方波) 。3实验原理图图 3-3-1 可编程定时器/计数器 8254 管脚图32 位微机系

37、统与应用实验指南- 17 -4 代码MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA DATAIO_9054base_address DB 4 DUP(0) ;PCI卡 9054芯片I/O基地址暂存空间IO_base_address DB 4 DUP(0) ;PCI卡 I/O基地址暂存空间pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error !,0DH,0AH,$GOOD DB 0DH,0AH,The Pro

38、gram is Executing !,0DH,0AH,$D8254A DW 00000H D8254B DW 00001HD8254C DW 00010HMEMO DW 00003HLS273 DW 00020HRA DB ?LB DB ?DELAY_SET EQU 0FFFH;延时常数MY_DATA ENDsMY_CODE SEGMENT PARA CODEMY_PROC PROC FARASSUME CS:MY_CODE,DS:MY_DATA, SS:MY_STACKMAIN:.386 ;386模式编译 MOV AX,MY_DATAMOV DS,AXMOV ES,AXMOV AX,MY_

39、STACKMOV SS,AXCALL FINDPCI;自动查找 PCI卡资源及 IO口基址MOV CX,word ptr IO_base_address;- ADDLS244,CX ;PCI卡 IO基址+偏移 ADDLS273,CX ADD D8254A,CX ADD MEMO,CX ;自己的程序 MOV RA,7FH MOV LB,0FEHREAD1: MOV AL,17HMOV DX,MEMOOUT DX,AL;送 LED显示 MOV AL,32HMOV DX,D8254AOUT DX,ALCALL DELAYCALL BREAK; JMP READ1MY_PROC ENDpBREAK P

40、ROC NEAR ;按任意键退出 PUSHFPUSH AXPUSH DXMOV AH,06H MOV DL,0FFHINT 21H JE RETURNMOV AX,4C00H INT 21HRETURN: POP DXPOP AXPOPFRET32 位微机系统与应用实验指南- 18 -BREAK ENDPDELAY PROC NEAR ;延时程序 PUSHFPUSH DXPUSH CXMOV DX,DELAY_SETD1: MOV CX,-1D2: DEC CX JNZ D2DEC DX JNZ D1POP CX POP DXPOPF RETDELAY ENDp;FUNCTION CODEIO

41、_port_addre EQU 0CF8H ;32位配置地址端口IO_port_data EQU 0CFCH ;32位配置数据端口IO_PLX_ID EQU 200810B5H;PCI卡设备及厂商 IDBADR0 = 10H;基地址寄存器 0BADR1 = 14H;基地址寄存器 1BADR2 = 18H;基地址寄存器 2BADR3 = 1CH;基地址寄存器 3FINDPCI PROC NEAR ;查找 PCI卡资源并显示PUSHADPUSHFDMOV EBX,080000000HFINDPCI_next:ADD EBX,100HCMP EBX,081000000HJNZ findpci_con

42、tinueMOV DX,offset pcicardnotfind;显示未找到 PCI卡提示信息MOV AH,09HINT 21HMOV AH,4CHINT 21H;退出findpci_continue: MOV DX,IO_port_addreMOV EAX,EBXOUT DX,EAX;写地址口 MOV DX,IO_port_dataIN EAX,DX;读数据口CMP EAX,IO_PLX_IDJNZ findpci_next;检查是否发现 PCI卡MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR1OUT DX,EAX;写地址口MOV DX,IO_por

43、t_dataIN EAX,DX;读数据口MOV dword ptr IO_9054base_address,EAXAND EAX,1JZ findPCI_next;检查是否为 i/o基址信息MOV EAX,dword ptr IO_9054base_addressAND EAX,0fffffffeh MOV dword ptr IO_9054base_address,EAX ;去除 i/o指示位并保存MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR2OUT DX,EAX;写地址口MOV DX,IO_port_data32 位微机系统与应用实验指南- 19

44、-IN EAX,DX;读数据口MOV dword ptr IO_base_address,EAXAND EAX,1JZ findPCI_next;检查是否为 i/o基址信息MOV EAX,dword ptr IO_base_addressAND EAX,0fffffffehMOV dword ptr IO_base_address,EAX ;去除 i/o指示位并保存MOV DX,offset good;显示开始执行程序信息MOV AH,09HINT 21HPOPfdPOPadRETfindPCI ENDPMY_CODE ENDSEND MAIN5 实验结果 L1 以 1HZ频率闪烁实验六 16

45、*16 LED 中文字幕移动实验.1 实验目的(1) 熟悉并掌握系统中扩展键盘显示接口的方法。(2) 掌握键盘显示的工作原理和编程的方法.2 实验内容(1)由键盘输入相应的数据在 LED 显示。在初始状态,没键按下时,最高位闪烁显示 P,按一个键在 LED 上显示该键值(4 个数码管同时显示一个值) 。(2)修改程序,用一位数码管显示对应按下的键值,即0F 。32 位微机系统与应用实验指南- 20 -3 实验原理图代码MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA DATAIO_9054bas

46、e_address DB 4 DUP(0) ;PCI 卡 9054 芯片 I/O 基地址暂存空间IO_base_address DB 4 DUP(0) ;PCI 卡 I/O 基地址暂存空间pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error !,0DH,0AH,$GOOD DB 0DH,0AH,The Program is Executing !,0DH,0AH,$P8255_A DW 0000H P8255_B DW 0001HP8255_C DW 0002HP8255_MODE DW 0003HKVL

47、DB 2 DUP(?) ;击键次数备份,键值PT DB ? ;显示缓冲区指针 DSBUF DB 4 DUP(?) ;显示缓冲区KD DB ? ;数码管数据信号KH DB ? ;键盘行信号KL DB ? ;键盘列信号、数码管位选信号KVA DB ? ;键值备份KVB DB ? ;在闪烁子程序中保存显示器原有的数据COUNT2 DB ? ;击键次数COUNT4 DB ? ;连续击键次数KTB DB 48H ;0 键码 DB 44H ;1DB 34H ;2 DB 24H ;3DB 42H ;4 DB 32H ;5DB 22H ;6 DB 41H ;7DB 31H ;8 DB 21H ;9DB 11H ;A DB 12H ;BDB 14H ;C DB 18H ;DDB 28H ;E DB 38H ;FDB 00H ;10 SGTB DB 0C0H,0F9H,0A4H,0B0H,099H,92H,82HDB 0F8H,080H,90H,88H,83H,0C6H,0A1H32 位

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报