回复:关于间接寻址的实际应用

已锁定

flying_lin

  • 帖子

    215
  • 精华

    1
  • 被关注

    2

论坛等级:侠士

注册时间:2019-06-13

钻石 钻石 如何晋级?

发布于 2025-02-24 17:34:51

9楼

展开查看
以下是引用holdkcsxyz在2025-02-24 15:56:26的发言 >7楼

按钮个数变量;

按钮布尔量区域指针;

按钮对应值区域指针;

按钮传送值区域指针;

Network 1: 输入状态缓冲
  MOV_B IB0, VB0     // 缓冲I0.0-I0.7状态
  MOV_B IB1, VB1     // 缓冲I1.0-I1.7状态

Network 2: 主循环初始化
  FOR VW200, 0, 15   // 循环处理16个按钮(0~15)

Network 3: 地址解析
  MOVW VW200, VW202  // 复制按钮索引
  SRW  VW202, 3      // 计算输入字节偏移(索引/8)
  MOVB VB0[VW202], VB300 // 读取对应输入字节
  MOVW VW200, VW204  
  ANDW 16#0007, VW204 // 计算位偏移(索引%8)

Network 4: 位状态检测
  BTI  VB300, VW204, VW206 // 检测位状态(0/1)

Network 5: 源地址计算
  MOVD &VW10, AC1    // 源数据基地址VW10
  ITD  VW200, AC0    // 转换索引为双整数
  SLD  AC0, 1        // 计算偏移(每个VW占2字节)
  +D   AC1, AC0      // 得到源数据指针

Network 6: 目标地址计算
  MOVD &VW100, AC2   // 目标基地址VW100
  ITD  VW200, AC3    // 转换索引为双整数
  SLD  AC3, 1        // 计算偏移
  +D   AC2, AC3      // 得到目标指针

Network 7: 条件数据传送
  LDW= VW206, 1      // 检测到按钮按下
  MOVW *AC0, *AC3    // 传送源VW值到目标

  LDW= VW206, 0      // 按钮未按下
  MOVW 0, *AC3       // 目标地址清零

Network 8: 循环结束
  NEXT

这是deep seek的回答,,有些明显的错误。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9120条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。