IO端口读写(BCB).rar

  • PUDN用户
    了解作者
  • Borland C++
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 677
    下载次数
  • 2005-05-29 17:20
    上传日期
C++Builder中动态库的链接问题 对BCB爱好者有借鉴
IO端口读写(BCB).rar
  • 20.htm
    3.2KB
  • www.pudn.com.txt
    218B
内容介绍
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>I/O端口读写的实现</title> </head> <div><center> <table border="0" width="640"> <tr><td align="center"><b>I/O 端 口 读 写 的 实 现</b></td></tr> <tr><td align="center"><font color="#CC9933"></font></td></tr> <tr><td>&nbsp;&nbsp;细 心 的 读 者 会 发现,C++ Builder 不 再 支 持 如inportb()、outportb() 一 类I/O 端 口 读 写指 令 了。 准 确 地 说, 在Windows 环 境 下,Borland C++ 仅 支 持16 位应 用 程 序 的 端 口 操 作, 对32 位 应 用 程 序 的 端 口 操 作 不 再 支持, 而C++ Builder 开 发 出 来 的 程 序 是32 位 的。 我 个 人 以 为, 这是C++ Builder 设 计 者 的 败 笔。 因 为PC 机 中,I/O 地 址 空 间 与 内存 地 址 空 间 从 来 都 是 各 自 独 立 的。 看 看Delphi, 不 就 通 过Port 数 组 实 现 了 对I/O 端 口 的 访 问 了 吗? 搞 不 清 楚 为 什 么C++ Builder 就 没 有 提 供 类 似 的 机 制 ? 下 面 这 几 个 函 数 是 笔 者 从 网 上淘 下 来 的, 经 过 验 证, 在Windows95 环 境 下, 的 确 可 实 现 对I/O 端 口 的 读 写。 读 者 可 以 借 鉴 使 用。 <br> void outportb(unsigned short int port, unsigned char value) <br><br> { <br><br> // mov edx, *(&port); <br><br> __emit__(0x8b, 0x95, &port); <br><br> // mov al, *(&value); <br><br> __emit__(0x8a, 0x85, &value); <br><br> // out dx, al; <br><br> __emit__(0x66, 0xee); <br><br> } <br><br> void outportw(unsigned short int port, unsigned short int value) <br><br> { <br><br> // mov edx, *(&port); <br><br> __emit__(0x8b, 0x95, &port); <br><br> // mov ax, *(&value); <br><br> __emit__(0x66, 0x8b, 0x85, &value); <br><br> // out dx, ax; <br><br> __emit__(0xef); <br><br> } <br><br> unsigned char inportb(unsigned short int port) <br><br> { <br><br> unsigned char value; <br><br> // mov edx, *(&port); <br><br> __emit__(0x8b, 0x95, &port); <br><br> // in al, dx; <br><br> __emit__(0x66, 0xec); <br><br> // mov *(&value), al; <br><br> __emit__(0x88, 0x85, &value); <br><br> return value; <br><br> } <br><br> unsigned short int inportw(unsigned short int port) <br><br> { <br><br> unsigned short int value; <br><br> // mov edx, *(&port); <br><br> __emit__(0x8b, 0x95, &port); <br><br> // in ax, dx <br><br> __emit__(0xed); <br><br> // mov *(&value), ax <br><br> __emit__(0x66, 0x89, 0x85, &value); <br><br> return value; <br><br> } </td></tr> </table></center></div> </html>
评论
    相关推荐
    • C++BUILDER按钮设置c++
      C++BUILDER按钮设置
    • C++ Builder XE10 Demo
      C++ Builder XE10 官方 Demo 解压即可使用 内部为一个个C语言demo 可以用来熟悉控件以及开发环境
    • C++builder
      C++代码开发,简单易用,易安装
    • C C++ C++ Builder创建动态数组
      C++ C++ Builder中创建动态数组,分配内存,和C中类似。
    • C++Builder
      c++builder高级应用开发指南完整配套代码
    • c++builder 入门学习资料
      (3) 内容广泛,兼容性强本书几乎涉及了C++Builder编程的所有领域,不仅适用于C++Builder 5,而且也适用于C++Builder 4和C++Builder 3等以前的版本。 (4) 体现了面向对象的技术和软件工程化的思想本书从总体上体现了...
    • c++ builder ppt 课件
      第一章 C++ Builder 6簡介 ...第三章 從C/C++C++ Builder 第四章 C++ Builder 按鈕元件 第五章 C++ Builder 顯示與輸入介面 第六章 擷取輸入裝置的訊息和事件 第七章 視窗程式中的各項選單 ......
    • Borland C++ Builder
      Borland公司出品的编译器,可以编译CC++、VB等多种语言。内含Borland C++ Builder入门指南。
    • c++ builder 资源
      (1)学会在C++Builder下调试C程序、C++程序; (2)学会在C++Builder的编程环境下编制简单的应用程序; (3)掌握面向对象的程序设计思想; (4)掌握当今流行的C++Builder快速应用程序开发环境; (5)掌握包括...
    • C++BUILDER
      经典的游戏 贪吃蛇