求助解题

求助解题(3) 0.15 mo1·L-1NH4Cl; NH4+ + H2O NH3.H2O + H+ 0.15-X-X-X X^2/(0.15-X)=Kw/Kb=1*10^-14/1.79*10^-5=5.6*10^-10
谁能帮我解释一下这段汇编代码PUSH EBX
PUSH ESI
PUSH EDI;保存EBX,ESI,EDI寄存器
MOV ESI,EAX
MOV EDI,EDX ; edi<-edx,esi<-eax,由此可以知道该函数的输入值在eax,edx中
CMP EAX,EDX
JE L071; 如果输入值相等,函数结束
TEST ESI,ESI
JE L055;如果esi为零,到LO55
TEST EDI,EDI
JE L058;如果edi为零,到L058
MOV EAX,DWORD PTR DS:[ESI-4] ;如果esi,edi都不为零
MOV EDX,DWORD PTR DS:[EDI-4] ;重新给eax,edx赋值
;(eax<-[esi-4]),(edx<-[edi-4])
SUB EAX,EDX ;eax=eax-edx
JA L016;如果eax<edx,edx=edx+eax,否则去l016
ADD EDX,EAX
L016:
PUSH EDX;保存edx
SHR EDX,2;右移2位
JE L036;如果为0,去l036
L019:
MOV ECX,DWORD PTR DS:[ESI]
MOV EBX,DWORD PTR DS:[EDI]
CMP ECX,EBX ;如果ebx<>ecx,去LO61
JNZ L061
DEC EDX
JE L034
MOV ECX,DWORD PTR DS:[ESI+4]
MOV EBX,DWORD PTR DS:[EDI+4]
CMP ECX,EBX
JNZ L061
ADD ESI,8
ADD EDI,8
DEC EDX
JNZ L019
JMP L036
L034:
ADD ESI,4
ADD EDI,4
L036:
POP EDX
AND EDX,3
JE L053
MOV ECX,DWORD PTR DS:[ESI]
MOV EBX,DWORD PTR DS:[EDI]
CMP CL,BL
JNZ L071
DEC EDX
JE L053
CMP CH,BH
JNZ L071
DEC EDX
JE L053
AND EBX,0FF0000
AND ECX,0FF0000
CMP ECX,EBX
JNZ L071
L053:
ADD EAX,EAX
JMP L071
L055:
MOV EDX,DWORD PTR DS:[EDI-4]
SUB EAX,EDX
JMP L071
L058:
MOV EAX,DWORD PTR DS:[ESI-4]
SUB EAX,EDX
JMP L071
L061:
POP EDX
CMP CL,BL
JNZ L071
CMP CH,BH
JNZ L071
SHR ECX,10
SHR EBX,10
CMP CL,BL ;junk code
JNZ L071;junk code
CMP CH,BH ;junk code
L071:
POP EDI;恢复寄存器
POP ESI
POP EBX
RETN
不想说什么了,太乱了 。帮你翻了一点,郁闷
什么程序啊,一片混乱 。懒得玩了
想要欧姆龙plc的所有基本指令!!欧姆龙CPM1A系列PLC基本指令
CPM1A系列PLC的基本逻辑指令与FX系列PLC较为相似,梯形图表达方式也大致相同,这里列表表示CPM1A系列PLC的基本逻辑指令(见表4-8)表4-8CPM1A系列PLC的基本逻辑指令指令名称 指令符 功能 操作数
取 LD 读入逻辑行或电路块的第一个常开接点 00000~0191520000~25507HR0000~1915AR0000~1515LR0000~1515TIM/CNT000~127TR0~7*TR仅用于LD指令
取反 LD NOT 读入逻辑行或电路块的第一个常闭接点
与 AND 串联一个常开接点
与非 AND NOT 串联一个常闭接点
或 OR 并联一个常开接点
或非 OR NOT 并联一个常闭接点
电路块与 AND LD 串联一个电路块 无
电路块或 OR LD 并联一个电路块
输出 OUT 输出逻辑行的运算结果 00000~0191520000~25507HR0000~1915AR0000~1515LR0000~1515TIM/CNT000~127TR0~7*TR仅用于OUT指令
输出求反 OUT NOT 求反输出逻辑行的运算结果
置位 SET 置继电器状态为接通
复位 RSET 使继电器复位为断开
定时 TIM 接通延时定时器(减算)设定时间0~999.9S TIM/CNT000~127设定值0~9999定时单位为0.1S计数单位为1次
计数 CNT 减法计数器 设定值0~9999次
欧姆龙CPM1A系列PLC功能指令
功能指令又称专用指令,CPM1A系列PLC提供的功能指令主要用来实现程序控制,数据处理和算术运算等 。这类指令在简易编程器上一般没有对应的指令键,只是为每个指令规定了一个功能代码,用两位数字表示 。在输入这类指令时先按下“FUN”键,再按下相应的代码 。下面将介绍部分常用的功能指令 。1.空操作指令NOP(0 0)本指令不作任何的逻辑操作,故称空操作,也不使用继电器,无须操作数 。该指令应用在程序中留出一个地址,以便调试程序时插入指令,还可用于微调扫描时间 。2.结束指令END(01)本指令单独使用,无须操作数,是程序的最后一条指令,表示程序到此结束 。PLC在执行用户程序时,当执行到END指令时就停止执行程序阶段,转入执行输出刷新阶段 。如果程序中遗漏END指令,编程器执行时则会显示出错信号:“NO END INSET”:当加上END指令后,PLC才能正常运行 。本指令也可用来分段调试程序 。3.互锁指令IL(02)和互锁清除指令ILC(0 3)这两条指令不带操作数,IL指令为互锁条件,形成分支电路,即新母线以便与LD指令连用,表示互锁程序段的开始;ILC指令表示互锁程序段结束 。互锁指令IL和互锁清除指令ILC用来在梯形图的分支处形成新的母线,使某一部分梯形图受到某些条件的控制 。IL和ILC指令应当成对配合使用,否则出错 。IL/ILC指令的功能是:如果控制IL的条件成立(即ON),则执行互锁指令 。若控制IL的条件不成立(即OFF),则IL与ILC之间的互锁程序段不执行,即位于IL/ILC之间的所有继电器均为OFF,此时所有定时器将复位,但所有的计数器,移位寄存器及保持继电器均保持当前值 。4.跳转开始指令JMP(0 4)和跳转结束指令JME(0 5)这两条指令不带操作数,JMP指令表示程序转移的开始,JME指令表示程序转移的结束 。JMP/JME指令组用于控制程序分支 。当JMP条件为OFF时,程序转去执行JME后面的第一条指令;当JMP的条件为ON,则整个梯形图按顺序执行,如同JMP/JME指令不存在一样 。在使用JMP/JME指令时要注意,若JMP的条件为OFF,则JMP/JME之间的继电器状态为:输出继电器保持目前状态;定时器/计数器及移位寄存器均保持当前值 。另外JMP/JME指令应配对使用,否则PLC显示出错 。5.逐位移位指令 SFT(10) 又称移位寄存器指令,本指令带两个操作数,以通道为单位,第一个操作数为首通道号D1,第二个操作数为末通道号D2 。所使用的继电器有:000CH~019CH, 200CH~252CH, HR00~HR19 。其功能相当于一个串行输入移位寄存器 。移位寄存器有数据输入端(IN)、移位时钟端(CP)及复位端(R),必须按照输入(IN)、时钟(CP)、复位(R)和SFT指令的顺序进行编程 。当移位时钟由OFF→ON时,将(D1~D2)通道的内容,按照从低位到高位的顺序移动一位,最高位溢出丢失,最低位由输入数据填充 。当复位端输入ON时,参与移位的所有通道数据均复位,即都为OFF 。如果需要多于16位的数据进行移位,可以将几个通道级连起来 。移位指令在使用时须注意:起始通道和结束通道,必须在同一种继电器中且起始通道号≤结束通道号 。6.锁存指令KEEP(11)本指令使用的操作数有:01000~01915、20000~25515、HR0000~HR1915,其功能相当于锁存器,当置位端(S端)条件为ON时,KEEP继电器一直保持ON状态,即使S端条件变为OFF,KEEP继电器也还保持ON,,直到复位端(R端)条件为ON时,才使之变OFF ,KEEP 指令主要用于线圈的保持,即继电器的自锁电路可用KEEP指令实现 。若SET端和RES端同时为ON,则KEEP继电器优先变为OFF 。锁存继电器指令编写必须按置位行(S端),复位行(R端)和KEEP继电器的顺序来编写 。7.前沿微分脉冲指令DIFU(13)和后沿微分脉冲指令DIFD(14)本指令使用操作数有:01000~01915、20000~25515、HR0000~HR1915,DIFU的功能是在输入脉冲的前(上升)沿使指定的继电器接通一个扫描周期之后释放,而DIFD的功能是在输入脉冲的后(下降)沿使指定的继电器接通一个扫描周期之后释放 。8.快速定时器指令 TIMH(15)本指令操作数占二行,一行为定时器号000~127(不得与TIM或CNT重复使用同号),另一行为设定时间 。设定的定时时间,可以是常数,也可以由通道000CH~019CH,20000CH~25515CH,HR0000~HR1915中的内容决定,但必须为四位BCD码 。其功能与基本指令中的普通定时器作用相似,唯一区别是TIMH定时精度为0. 01s,定时范围为0~99.99s 。9.通道移位指令WSFT(16)又称字移位指令,本指令是以字(通道)为单位的串行移位 。操作数为首通道号D1,末通道号D2 。可取000CH~019CH, 200CH~252CH, HR00~HR19 。通道移位指令执行时,当移位条件为ON,WSFT从首通道向末通道依此移动一个字,原首通道16位内容全部复位,原末通道中的16位内容全部移出丢失 。WSFT指令在使用时须注意:首通道和末通道必须是同一类型的继电器;首通道号≤末通道号 。当移位条件为ON时,CPU每扫描一次程序就执行一次WSFT指令 。如只要程序执行一次,则应该用微分指令 。10.可逆计数器指令 CNTR(12)本指令的功能是对外部信号进行加1或减1的环形计数 。带两个操作数:计数器号000~127,设定值范围0000~9999,设定值可以用常数,也可以用通道号,用通道号时,设定值为通道中的内容 。11.比较指令CMP(20)本指令的功能是将S(源通道)中的内容与D(目标通道)的内容进行比较,其比较结果送到PLC的内部专用继电器25505、05506、25507中进行处理后输出,输出状态见表4-9 。表4-9比较结果输出专用继电器状态表SMR 25505 25506 25507