发布于 2008-07-17 14:41:40
0楼
CRC校验
Network 1 // 定义指针LD50
// 网络注释
LD SM0.0
MOVD &VB0, LD50
Network 2 // 指针LD50指向数据表首地址
LD SM0.0
+D LD0, LD50
Network 3 // 初始化CRC累加器
LD SM0.0
MOVW 16#FFFF, LW12
Network 4 // 数据表Byte循环
LD SM0.0
FOR LW8, 1, LW4
Network 5 // 数据表中的数据循环于CRC累加器的低8位数据相异或
LD SM0.0
MOVB *LD50, LB11
MOVB 16#0, LB10
XORW LW10, LW12
Network 6 // Bit循环
LD SM0.0
FOR LW14, 1, 8
Network 7 // CRC累加器的数据循环右移1位
LD SM0.0
SRW LW12, 1
Network 8 // CRC累加器的最后1位为"1"时候于常数"16#A001"相异或
LD SM1.1
XORW 16#A001, LW12
Network 9 // Bit循环结束
NEXT
Network 10 // 指向数据表下一个位置
LD SM0.0
+D 1, LD50
Network 11 // 数据表Byte循环
NEXT
Network 12 // 交换CRC累加器的数据并输出
LD SM0.0
MOVW LW12, LW7
RRW LW7, 8
Network 13