• 接口技术:总线部分练习题(PCI配置空间)


    基础知识

    1.配置机构的端口设置

    配置机构的地址端口的寄存器是0CF8H-0CFBH;数据端口寄存器是0CFCH-0CFFH。

    2.配置操作实现的步骤

    ①将所要访问的总线号、设备号、功能号和双字地址写到配置地址端口寄存器中;
    ②执行一次对配置数据端口寄存器的读操作或写操作。

    3.配置空间的内容

    在这里插入图片描述

    4.配置地址信息的格式

    在这里插入图片描述

    5.基址寄存器中的内容分析

    在这里插入图片描述

    例题

    第一题(对配置空间进行读取)

    读PCI总线的1号扩展槽(设备号)2号功能设备的厂商标志(寄存器号)。(写出汇编语言代码段)

    题目分析:读操作相对于写操作更加简单。首先确定需要进行传输给配置地址端口寄存器的内容。使能位为1,保留位中各位均为0,总线号默认为0,设备号为1,功能号为2,寄存器号为0(因为在第一行),因此可以得到需要写入到地址端口寄存器中的内容为:10000000000000000000101000000000(转换为十六进制即为80000A00H)

    ;首先将控制端口的地址放入地址寄存器DX中
    MOV DX,0CF8H
    ;接着将双字地址放入双字累加寄存器EAX中
    MOV EAX,80000A00H
    ;将需要写入地址端口的内容通过OUT指令输出到地址端口中
    OUT DX,EAX
    ;首先将数据端口的地址放入地址寄存器DX中
    MOV DX,0CFCH
    ;使用IN指令从指定的端口地址DX处读取数据并送入EAX寄存器中
    IN EAX,DX
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    第二题(对配置空间进行写)

    给总线号为7的PCI总线的4号扩展槽(设备号)0号功能设备的基址寄存器0分配8个I/O地址空间(写出汇编语言代码段)。

    题目分析:和上一题的思路类似。首先通过向地址端口赋值用于指定总线号、设备号、功能号和寄存器号;接着向数据端口输出基址寄存器中应该存放的数据即可。

    ①确定地址端口的写入内容:根据基础知识中配置地址信息的格式可知,此处写入地址端口寄存器的数据的二进制形式应该为(其中寄存器号通过基础知识中配置空间的内容获得)

    1 0000000 00000111 00100 000 010000 00 B

    转换为十六进制即为80072040H。
    ②确定数据端口的写入内容:根据基础知识中基址寄存器中的内容分析可知,基地址中末位b0=1,表示是I/O空间指针。同时b1位保留位置零。由于分配大小为8个字节,因此第一位为1的位是b3。由此可以确定基地址寄存器中的内容为:

    FFFF FFF9(最后一个字节是1001)

    ③编写完整汇编代码

    ;首先将地址端口寄存器的地址存入寄存器DX中
    MOV DX,0CF8H
    ;接下来将要向地址端口写入的数据放入寄存器中
    MOV EAX,80072040H
    ;把地址数据写入到地址端口中
    OUT DX,EAX
    ;把数据端口寄存器的地址存入寄存器DX中
    MOV DX,OCFCH
    ;把要向数据端口写入的数据放入寄存器中
    MOV EXA,FFFFFF9H
    ;向数据端口输出数据
    OUT DX,EAX
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    第三题(对配置空间进行写)

    给总线号为5的PCI总线的3号扩展槽4号功能设备的基址寄存器4分配256个存储器地址空间。
    题目分析:
    ①确定地址端口寄存器写入的内容:

    1 0000000 00000101 00011 100 100000 00

    转化为十六进制即为

    80051C80H

    ②确定数据寄存器端口写入的内容

    1111 1111 1111 1111 1111 1111 0000 0000

    转化为十六进制数即为

    FFFFFF00H

    ③编写完整汇编代码

    MOV DX,0CF8H
    MOV EAX,80051C80H
    OUT DX,EAX
    MOV DX,0CFCH
    MOV EXA,FFFFFF00H
    OUT DX,EAX
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    GZIP文件压缩
    百度网盘vip免费领取一天活动链接2024最新
    ABAP 报表中如何给报表的输入参数增添 F4 Value Help 试读版
    java培训之SpringMVC提示消息的国际化
    Azkaban登录分析
    企业如何才能保证自身可持续发展
    【自学CSS笔记第9篇】——结构伪类选择器和伪元素
    Docker中搭建Seata1.3.0并整合SpringBoot 2.3.12.RELEASE+Nacos2.0.3
    Python 数据库应用教程:安装 MySQL 及使用 MySQL Connector
    PostgreSQL导出表结构带注释
  • 原文地址:https://blog.csdn.net/hanmo22357/article/details/127635445