导航:首页 > 软件知识 > 程序段中的程序步是什么

程序段中的程序步是什么

发布时间:2022-07-12 18:12:30

Ⅰ 程序运行的基本步骤

一、编译时与运行时的内存情况

1.编译时不分配内存
编译时是不分配内存的。此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误。
2.运行时必分配内存
运行时程序是必须调到“内存”的。因为CPU(其中有多个寄存器)只与内存打交道的。程序在进入实际内存之前要首先分配物理内存。
3.编译过程
只能简单说一下,因为如果要详细的话,就是一本书了《编译原理》。编译器能够识别语法,数据类型等等。然后逐行逐句检查编译成二进制数据的obj文件,然后再由链接程序将其链接成一个EXE文件。此时的程序是以EXE文件的形式存放在磁盘上。
4.运行过程
当执行这个EXE文件以后,此程序就被加载到内存中,成为进程。此时一开始程序会初始化一些全局对象,然后找到入口函数(main()或者WinMain()),就开始按程序的执行语句开始执行。此时需要的内存只能在程序的堆上进行动态增加/释放了。

各区段功能说明:

1、程序代码区:存放函数体的二进制代码。

2、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束后由系统释放。
3、文字常量区 :常量字符串就是放在这里的。 程序结束后由系统释放。
4、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。

5、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

程序设计分为几个步骤

Turbo
C程序设计分为三个基本步骤。
程序设计方法包括三个基本步骤::
第一步:
分析问题。
第二步:
画出程序的基本轮廓。
第三步:
实现该程序。
源程序的输入、编译和运行:
C语言是一种中级语言,
用户用C语言编写的程序称为源程序,
存放用C
语言
所写源程序文件名字最后的两个字符一般必须为".c"。计算机硬件不能直接执行
源程序,
必须将源程序翻译成二进制目标程序。
翻译工作是由一个程序完成的,这个程序称为编译程序,
翻译的过程称为编译,
编译的结果称为目标程序,
存放目标程序文件名字紧后的字符一般为".OBJ"或".O"。程序翻译成目标程序后,
便可进行连接。"连接"的目的是使程序变成在计算机上可以执行的最终形式。
在这一阶段,
从系统程序库来的程序要与目标程序连接,
连接的结果称为执行程序,存放执行程序文件名字一般以".EXE"结尾。
在Turbo
C集成开发环境中建立一个新程序通常有以下几个步骤:
(1).
在编辑器中编写源文件。
(2).
生成可执行文件。
在DOS提示符下键入TC,
即可进入Turbo
C了。进入主TC屏后,
按F3键,
即可
在随之出现的框中输入文件名,
文件名可以带".C"也可以不带(
此时系统会自动
加上)。
输入文件名后,
按回车,
即可将文件调入,
如果文件不存在,
就建立一
个新文件(也可用下面例子中的方法输入文件名)。系统随之进入编辑状态。就可
以输入或修改源程序了,
源程序输入或修改完毕以后,
按Ctrl+F9(同时按下Ctrl
键和F9键),
则立即进行编译、连接和执行,
这三项工作是连续完成的。
下面我们试着建立一个Turbo
C名为"HELLO.C"的源程序(因程序很小,
这里就
不画出该程序的轮廓图了):

Ⅲ C语言源程序到运行程序经过哪几个步骤

1、预处理

在这一阶段,源码中的所有预处理语句得到处理,例如:#include语句所包含的文件内容替换掉语句本身,所有已定义的宏被展开。

根据#ifdef,#if等语句的条件是否成立取舍相应的部分,预处理之后源码中不再包含任何预处理语句。

GCC预处理阶段可以生成.i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。例如:gcc -E -o hello.i hello.c

2、编译

这一阶段,编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。

可以通过选项-S使GCC在进行完编译后停止,生成.s的汇编程序。例如:gcc -S -o hello.s hello.c

3、汇编

这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为.o的目标文件中。

当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成.o目标文件后,才能进入下一步的链接工作。

目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件:gcc -c -o hello.o hello.c

4、链接

经过汇编以后的机器代码还不能直接运行。为了使操作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。gcc -o hello hello.c

5、运行:执行.EXE文件,得到运行结果。

Ⅳ Plc程序步是什么意思呢一步代表什么呢谢了

代表需要使用的PLC内存。

一步等于1个字节的内存。

Ⅳ 这个程序段每一步是什么意思,初学不太懂

assume cs:code
code segment
start:
mov bx,6
mov ax,0 ;ax初始化为0, 因为ax存放的是最终结果
mov cx,5
loop1: add ax,bx ;这里应该是add ax,bx,因为要算的是6+7+8+9+10
;如果是mov ax,bx就不符合楼主你的问题了
inc bx ;bx依次是6,7,8,9,10
loop loop1 ;cx = cx - 1, 当cx不为0, 继续执行loop1

;loop的功能是先将cx-1,然后判断cx是否为0,如果不为0,继续执行loop1, 如果为0,结束循环

mov ax,4c00h ;功能:程序正常结束
int 21h
code ends
end start


PS:若有不明白的地方,可以追问

Ⅵ PLC的程序步是怎么区分的

不明白 你说的什么 程序步指的是 你用每个指令写的程序都会占用 内存字节存储单位 简称程序 例如三菱PLC都是以程序步,一个PLC程序步用量8K表示程序步能写到8千步,具体程序用了多少这个要估计 每个指令占用的程序步 不一样
西门子都是以字节为存储单位 例如 你写了一段起保停程序 然后编译之后 软件会显示用了多少字节 或者字 西门子CUP 字节单位都是 KB 例如一个CUP 128KB 表示这个CUP存储单位或者程序最多能写 12800个字节。

Ⅶ 请问一下大佬这段程序每一步是啥意思啊,能不能帮我解释一下,求帮忙,谢谢!

第一个dowhile循环不断将原数字对16取余,得到转为16进制后每一位上的数字,存到数组c里面,直到原数字已经变为0。然后for循环将数组c里面的数字转换成对应的十六进制字母。

Ⅷ plc中的程序步数是什么

程序步数,一般不需要考虑,因为现在的PLC内存都很大,你编的程序不会内存装不下的,放心用吧!

Ⅸ PLC程序中步是什么意思,求详解

类似汇编语言中的一行基本代码,代码越多,执行时间越长,PLC执行时间也是和步数有关,就是步数乘以单步执行时间。在PLC中,那些函数占用步数多,是因为函数编译。内部实际包涵了若干基本单步代码。PLC的执行是由上而下;由左而右(若为阶梯图时)
既然有方向顺序;需要STEP是很自然的。值得关注的是;依使用元件或指令的不同;各有不同的执行周期。就是PLC程序是逐行翻译并执行的,不像BASIC程序是先将整个程序编译再执行的,因此,每一行命令语句(空格行、“;”行不算)就称为一个程序步。

Ⅹ 汇编语言程序设计步骤 有那几步

汇编语言程序设计步骤: 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、 静态检查,上机调试 选用指令尽量字节少,使其执行速度快。易错处应重点查,如比较次数、转移条件等。 确信无错后方可上机调试。

阅读全文

与程序段中的程序步是什么相关的资料

热点内容
极光新闻在哪里填写人员信息 浏览:227
代理手机卡是什么意思 浏览:159
生日宴程序怎么安排亲戚朋友 浏览:31
市场上说的真钻是什么钻 浏览:78
plc不亮了如何复制程序 浏览:353
德州文玩市场在哪里 浏览:258
什么数据适合关联规则分类 浏览:224
ems邮寄信息平台保存多久 浏览:3
股票市场行情哪个好 浏览:395
重庆皇田花卉市场在什么地方 浏览:50
中木集团墙饰怎么代理武汉 浏览:986
电路板的程序是怎么做的 浏览:135
考试信息管理平台id一般是什么 浏览:95
表与表之间的数据如何合计 浏览:614
遵义女装折扣代理哪个好 浏览:749
代理返款图片怎么做 浏览:201
代理国家的公司有哪些 浏览:997
有一个摄影技术跟vr挂钩叫什么 浏览:245
宜春乌龙茶代理需要什么条件 浏览:995
各种核算程序都有什么 浏览:780