CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

Win32汇编如何读取端口数据

楼主allonhoo()2003-12-03 14:58:15 在 其他开发语言 / 汇编语言 提问

mov   dx,2eh   +   30h   ;2eh是端口地址,30h是偏移地址  
  in   ax,dx  
   
  这段代码老是出错,IN指令读取出错,为什么??? 问题点数:0、回复次数:4Top

1 楼allonhoo()回复于 2003-12-03 15:02:10 得分 0

编译能通过,运行出错,不用IN指令的话就没问题。Top

2 楼haowh(一个人走在黑黑的夜)回复于 2003-12-03 16:40:24 得分 0

给你提供一个参考  
  //   Function  
  // ReadCMOS   -   read   CMOS   register  
  //  
  //   Input  
  // reg number   of   register   (0   to   0x7f)   to   read  
  //  
  //   Remarks  
  // Reads   a   byte   of   the   CMOS   RAM.   The   RTC   registers   are   in   the   CMOS  
  // RAM.  
  //  
  //   Returns  
  // Returns   the   value   of   the   specified   register.  
  //  
  BYTE   ReadCMOS(BYTE   reg)  
  {  
  BYTE   r;  
   
  _asm   {  
  pushfd  
  cli  
  mov al,   reg  
  or al,   80h  
  out 70h,   al  
  jmp _1  
  }  
  _1:  
  _asm jmp _2  
  _2:  
  _asm   {  
  in al,   71h  
  mov r,   al  
  jmp _3  
  }  
  _3:  
  _asm jmp _4  
  _4:  
  _asm   {  
  xor al,   al  
  out 70h,   al  
  popfd  
  }  
   
  return   r;  
  }  
   
   
  //   Function  
  // WriteCMOS   -   write   a   CMOS   RAM   location  
  //  
  //   Input  
  // reg CMOS   register   to   write  
  // value Value   to   write   to   register  
  //  
  //   Remarks  
  // Writes   a   CMOS   RAM   location.   The   RTC   registers   are   in   the   CMOS  
  // RAM.  
  //  
  VOID   WriteCMOS(BYTE   reg,   BYTE   value)  
  {  
  _asm   {  
  pushfd  
  cli  
  mov al,   reg  
  or al,   80h  
  out 70h,   al  
  jmp _1  
  }  
  _1:  
  _asm jmp _2  
  _2:  
  _asm   {  
  mov al,   value  
  out 71h,   al  
  jmp _3  
  }  
  _3:  
  _asm jmp _4  
  _4:  
  _asm   {  
  xor al,   al  
  out 70h,   al  
  popfd  
  }  
  }  
   
  Top

3 楼zkhj(学习.Net中......)回复于 2003-12-03 16:49:46 得分 0

应该用INT   21h吗,用DOS中断功能调用才对。Top

4 楼ytfr()回复于 2003-12-03 18:52:07 得分 0

看你运行在什么平台上了  
  WIN2K以上不能用in读取断口Top

相关问题

  • 如何在C++Buildr中嵌入汇编读写端口
  • 怎么用汇编读取主板芯片信息???
  • Delphi 中嵌入汇编读端口数据在NT环境中不行?
  • 在DELPHI中是否有读取I/O端口的函数?
  • 在DELPHI中是否有读取I/O端口的函数?
  • 请问通过Delphi如何实现截取远程主机的端口并读取端口数据流?
  • windows xp 怎样直接给端口送值(_outp和嵌套汇编均报"Privilege instruction")
  • VB6能不能直接读取IO端口,一定要调用dll吗?
  • 谁有方法用汇编直接读取硬盘物理序列号?高分相送
  • 汇编?

关键词

  • asm
  • aljmp
  • asmjmp
  • cmos
  • registers
  • ram
  • byte
  • reads
  • writes

得分解答快速导航

  • 帖主:allonhoo

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo