汇编语言程序设计步骤: 1、 分析问题,抽象出描述问题的数据模型 2、 确定问题的算法思想 3、 画出流程图或结构图 4、 分配存储器和工作单元(
寄存器) 5、 逐条编写程序 6、 静态检查,上机调试 例:编程查找考生的最高分,假设所有考生
分数已存入计算机内存。 1、 分析问题 根据条件、特点、规律 →数学模型 本例分数已给定为0~200之间的整数集合(考虑加试分) ,记为{S},找max{S}(注: 简单问题不一定写数学模型) 。 2、 确定算法思想 最好利用现成算法和程序设计方法,若无,则需根据实践经验总结算法思想。如本例, 从成绩单第一分数往下看,边看边比较,记住较高分,舍弃较低分,直至看完,最高分存于 脑中。归纳算法思想:建立数据指针并指向数据区首地址。将第一数取入寄存器(如AL) , 与
下一数比较,若下一数大则将其取入寄存器,否则调整指针,再与下一数比较,重复上述 过程,直至比较完毕,寄存器中即最高分。 读分数用MOV指令,比较用CMP指令,分析判断用条件转移指令。 3、 画流程图或结构图 有逻辑流程、算法流程、程枯厅改序流程等,复杂问题需画模块结构。本例简单,只画出程序 流程图(用模块化结构的N-S流程图表示) : 本例的N-S流程没判图 图中初始化包括:设一个计数器,将分数个数减一后送计数器,每比较一次减一,至 零查找结束;建立一个指针指向数据区。 开始 初始化 取第一数到寄存器 与下一数比较 下一数大? 是 否 取大数到寄存器 修改指针,伏肆计数次数减一 返回到循环体开始,直到计数次数为0退出循环 结束 4、 分配存储器空间和工作单元(寄存器) 定义数据段、堆栈段、代码段等。工作单元一般用寄存器。本例:分数放数据段,建100 字节堆栈空间,BX作数据指针,CX作计数器,AL放最高分。 5、 逐条编写程序 DATA SEGMENT FEN DB 85,90,60,75,87,35,80,78,96,82…… ;存分数 MAX DB ? ;存最高分 DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ DB 100 DUP(?) ;100字节堆栈 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS MOV AX,0 PUSH AX ;为了返回DOS MOV AX,DATA MOV DS,AX ;置数据段寄存器 MOV BX,OFFSET FEN ;置数据指针 MOV CX,MAX-FEN ;置计数器初值 DEC CX ;N个分数比较N-1次 MOV AL,[BX] ;取第一个分数 LOP: INC BX ;调整指针 CMP AL,[BX] ;与下一数比较 JAE NEXT ;大于等于则转 MOV AL,[BX] ;否则取下一数 NEXT: LOOP LOP ;计数器减一, ;不为零转LOP MOV MAX,AL ;存放最高分 RET ;返回DOS START ENDP CODE ENDS END START 6、 静态检查,上机调试 选用指令尽量字节少,使其执行速度快。易错处应重点查,如比较次数、转移条件等。 确信无错后方可上机调试。Linux下面开发C程序的过程大致为:编辑源文件--调试--编写makefile文件--编译及安装(发布的话打包源码发布或者打包rpm、deb发布)。
(1)编辑源文件的方式有很多种,厉害的可以使用vim,配合插件,据说很牛,我只会基本 *** 作,i,wq之类的。推荐学一下vim,学会了很厉害,学不会也最起码保证打开文件,编辑文件,保存文件没问题。有小改动的时候,我会使用vim。
或者使用卖段windows下面的notepad,有大改动的时候我会配合smb使用notepad。
再或者在ubuntu下面安装eclipse,进行文件编辑,对于熟悉eclipse是不错的选择氏配逗。
(2)调试:
小型的程序,gdb就行
大点的程序,找IDE吧,比如eclipse
(3)对于makefile文件,小型的程序可以自己编写,大点的使用autotool工具生成,至于autotool工具如何使用,请自行上网搜。
使用eclipse的话,配置好之后进行编歼卖译。
(4)安装问题:有makefile的话,linux安装程序的经典步骤 configure,make,make install即可。
如果不是很大型的话,把自己的代码放在/usr/local软件名/下面,需要的库放在系统库路径下,或者把运行路径添加到环境变量中。也能运行。
(5)发布的时候
打包源码发布,.tar.gz
打包成rpm、deb包,自行搜索教程。
我也在摸索中,分享一下经验,仅供参考,如有出错,还请见谅。
大型PLC 的编程方式 都是结构化编程
大型PLC可以支持的编程型冲语言乱简也是多种
LD IL SFC FBD ST 等
首先将 控制功能分成多个 相对独立的功能块
根据哗租裤不同的任务 使用不同的编程语言
希望我的回答对你有点帮助,欢迎一起讨论和学习。
评论列表(0条)