没有合适的资源?快使用搜索试试~ 我知道了~
首页TD-PIT接口实验程序详解
TD-PIT接口实验程序详解
需积分: 10 7 下载量 146 浏览量
更新于2024-07-22
收藏 2.49MB PDF 举报
"唐都_TDPIT接口实验_程序清单" 这篇文档是关于"唐都_TDPIT接口实验"的程序清单,由西安唐都科教仪器公司编写并拥有版权。这个实验系统旨在帮助学习者理解32位微机原理以及各种接口技术。实验内容分为三个主要部分:32位微机原理实验、基本接口实验和高级接口实验。 在32位微机原理实验部分,涵盖了多个关键主题,包括显示程序设计、数据传送、数码转换、运算类实验、程序结构如分支、循环和子程序设计,以及涉及到保护模式和实模式的高级概念,如描述符和描述符表、任务管理和中断/异常处理。这些实验旨在深入理解CPU的工作原理和操作系统级别的编程。 基本接口实验部分则侧重于硬件接口的应用,如中断特性与8259中断控制器、DMA特性与8237 DMA控制器的使用,通过PCIBIOS获取PCI设备配置资源,以及对8254定时/计数器、8255并行接口、16550串行接口、A/D和D/A转换器的操控。此外,还有静态存储器和FLASHROM的扩展实验,以及步进电机控制实验,这些都是实际系统设计中常见的接口技术。 高级接口实验部分进一步探讨了在Windows环境下进行驱动程序开发,如基本VxD实验、VxD与Win32应用程序之间的通信,以及如何处理PCI中断。这些实验旨在提高学生在操作系统层面对硬件的控制能力,为将来从事系统级编程和驱动开发打下基础。 总体而言,这份实验程序清单提供了丰富的实践机会,使学习者能够通过实际操作掌握微处理器、接口技术和操作系统交互等核心IT知识,对于提升学生的理论与实践结合能力大有裨益。实验内容的深度和广度都表明,它适合高等教育阶段的计算机科学和相关专业的学生进行深入学习。
资源详情
资源推荐
TD-PIT/TD-PIT-B 教学实验系统 实验程序清单
MOV AX,0
MOV ES,AX
MOV DI,4*47H
MOV AX,IPBAK
CLD
STOSW
MOV AX,CSBAK
STOSW
MOV AX,4C00H
INT 21H
RET
ENDP
;自定义显示中断
入口参数为 BL
MYINT PROC FAR
PUSH AX
PUSH DX
C1: MOV AL,[SI]
AND AL,0F0H
SHR AL,4
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,[SI]
AND AL,0FH
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
INC SI
LOOP C1
POP DX
POP AX
IRET ;中断返回
ENDP
CODE ENDS
END START
1.8 综合设计实验
T8-1.ASM
;对 DATA1 中存放的 8 个数据进行排序
并将排序
结
;果显示在屏幕上
采用冒泡法
.386
TSTACK SEGMENT STACK USE16
DB 64 DUP(?)
TSTACK ENDS
DATA SEGMENT USE16
MES1 DB 'The array is:$'
MES2 DB 'After sort:$'
DATA1 DD 110015H,111101D8H,22110002H
DD 111a0004H,1d110009H,111f044H
DD 11d10203H,32H
COUNT =8
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
;显示未排序的数组
MOV DX,OFFSET MES1
MOV AH,09H
INT 21H
CALL KENTER
CALL SAHEX
CALL KENTER
CALL BUBBLE
;显示排序后的数组
MOV DX,OFFSET MES2
MOV AH,09H
INT 21H
CALL KENTER
CALL SAHEX
CALL KENTER
MOV AX,4C00H
INT 21H
14
TD-PIT/TD-PIT-B 教学实验系统 实验程序清单
BUBBLE PROC NEAR
XOR ESI,ESI
XOR ECX,ECX
MOV SI,OFFSET DATA1
MOV CX,COUNT
L1: XOR EBX,EBX
L2: CMP EBX,ECX
JAE LB
MOV EAX,[ESI+EBX*4+4]
CMP [ESI+EBX*4],EAX
JGE LNS
XCHG [ESI+EBX*4],EAX
MOV [ESI+EBX*4+4],EAX
LNS: INC EBX
JMP L2
LB: LOOP L1
RET
BUBBLE ENDP
;显示子程序
SAHEX PROC NEAR
XOR ESI,ESI
XOR ECX,ECX
MOV SI,OFFSET DATA1
MOV CX,COUNT*4
C1: MOV EBX,ECX
DEC EBX
MOV AL,DS:[ESI+EBX]
AND AL,0F0H
SHR AL,4
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,DS:[ESI+EBX]
AND AL,0FH
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
TEST EBX,03H
JNZ C4
MOV DL,20H
MOV AH,02H
INT 21H
C4: LOOP C1
RET
SAHEX ENDP
;显示回车换行
KENTER PROC NEAR
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
KENTER ENDP
CODE ENDS
END START
T8-2.ASM
;用 32 位寄存器
指令 扩展寻址方式实现数码转
换
.386
TSTACK SEGMENT STACK USE16
DB 64 DUP(?)
TSTACK ENDS
DATA SEGMENT USE16
MES0 DB 'This tangdu speaking!$'
MES1 DB 'Show this sentence as hex:$'
;54,68,69,73,20,74,61,6E,67
;64,75,20,73,70,65,61,6B,69,6E,67,21
BUF DB 65 DUP(?)
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
15
TD-PIT/TD-PIT-B 教学实验系统 实验程序清单
MOV DS,AX
;显示 "This is tangdu speaking!"
MOV DX,OFFSET MES0
MOV AH,09H
INT 21H
CALL KENTER
;以 HEX 格式显示
MOV DX,OFFSET MES1
MOV AH,09H
INT 21H
CALL KENTER
CALL SAHEX
MOV DX,OFFSET BUF
MOV AH,09H
INT 21H
CALL KENTER
MOV AH,4CH
INT 21H
SAHEX PROC NEAR
CBYTE =21
;将所有 32 位寄存器压栈
PUSHAD
MOV DI,OFFSET MES0
;零扩展指令
MOVZX EDI,DI
MOV AX,DATA
;使用 GS 段
MOV GS,AX
MOV SI,OFFSET BUF
MOVZX ESI,SI
MOV ECX,CBYTE
C1: MOV AL,DS:[EDI]
AND AL,0F0H
SHR AL,4
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV GS:[ESI],AL
MOV AL,DS:[EDI]
AND AL,0FH
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV GS:[ESI+1],AL
;在每个字符间加入空格
MOV BYTE PTR GS:[ESI+2],20H
ADD ESI,3
INC EDI
LOOP C1
;在串尾加上$符
MOV BYTE PTR GS:[ESI],24H
;弹出所有寄存器值
POPAD
RET
SAHEX ENDP
KENTER PROC NEAR
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
KENTER ENDP
CODE ENDS
END START
1.9 描述符和描述符表实验
T9-1.ASM
;========================================================================
;实验目的
熟悉编程格式
掌握通过 GDT 表访问段的编程方法
;实验结果
可以用 dump 命令检查数据区
验证程序的运行结果
16
TD-PIT/TD-PIT-B 教学实验系统 实验程序清单
;========================================================================
.386P
DESC STRUC
LIMITL DW 0
BASEL DW 0
BASEM DB 0
ATTR DB 0
LIMITH DB 0
BASEH DB 0
DESC ENDS
ATCE = 98H
ATDR = 90H
ATDW = 92H
DSEG SEGMENT USE16
GDT LABEL BYTE
ID1 DESC <0FFFFH,0FFFFH,0FFH,0FFH,0FFH,0FFH>
标记描述符 1
SCODE DESC <0FFFFH,CSEG,,ATCE,,>
代码段描述符
DATAS DESC <D1LEN,DSEG1,,ATDW,,> 源数据段描述符
DATAD DESC <BUFLEN-1,DSEG2,,ATDW,,>
目标数据段描述符
GDTLEN = $-GDT
SCODE_SEL = SCODE-GDT
DATAS_SEL = DATAS-GDT
DATAD_SEL = DATAD-GDT
ID2 DESC <0FFFFH,0FFFFH,0FFH,0FFH,0FFH,0FFH >
标记描述符 2
ID3 DESC <0FFFFH,0FFFFH,0FFH,0FFH,0FFH,0FFH >
标记描述符 3
DSEG ENDS
DSEG1 SEGMENT USE16
HELLO DB 'Hello!everybody'
DB 'This is my first PM program!'
DB 256H DUP(0)
D1LEN =$-1
DSEG1 ENDS
DSEG2 SEGMENT USE16
BUFLEN = 256
BUFFER DB BUFLEN DUP(0)
DSEG2 ENDS
CSEG SEGMENT USE16
ASSUME CS:CSEG,DS:DSEG
START PROC
MOV AX,DATAS_SEL
加载源数据段描述符
MOV DS,AX
17
TD-PIT/TD-PIT-B 教学实验系统 实验程序清单
MOV AX,DATAD_SEL
加载目标数据段描述符
MOV ES,AX
CLD
XOR SI,SI
XOR DI,DI
MOV CX,BUFLEN
M1: MOVSB
传送
LOOP M1
INT 0FFH
START ENDP
CLEN =$-1
CSEG ENDS
END START
T9-2.ASM
;========================================================================
;实验目的
熟悉编程格式
掌握通过 GDT
LDT 表访问段的编程方法
熟悉调试工具的指令
;实验结果
可以用 dump 命令检查数据区
验证程序的运行结果
;========================================================================
INCLUDE 386SCD.INC
;---------------------------------------
DSEG SEGMENT use16
;---------------------------------------
;全局描述符表
GDT LABEL BYTE
ID1 Desc <0ffffh,0ffffh,0ffh,0ffh,0ffh,0ffh> ;标记描述符 1
Mcode Desc <0ffffh,CSEG,,ATCE,,> ;代码段描述符
LDTable Desc <LDTLen-1,DSEG1,,ATLDT,,> ;局部描述符表段的描述符
GDTLen = $-GDT
MCode_Sel = MCode-GDT ;代码段选择子
LDT_Sel = LDTable-GDT ;局部描述符表段的选择子
ID2 Desc <0ffffh,0ffffh,0ffh,0ffh,0ffh,0ffh> ;标记描述符 2
DSEG ENDS
;---------------------------------------
DSEG1 SEGMENT use16
LDT LABEL BYTE ;局部描述符表
DataS Desc <0ffffh,0,11h,ATDW,,> ;源数据段描述符
DataD Desc <0ffffh,Dseg2,,ATDW,,> ;目标数据段描述符
LDTLen = $-LDT ;局部描述符表长度
DataS_Sel = DataS-LDT+TIL
DataD_Sel = DataD-LDT+TIL
ID3 Desc <0ffffh,0ffffh,0ffh,0ffh,0ffh,0ffh>
DSEG1 ENDS
18
剩余190页未读,继续阅读
qq_16603305
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功