Visual Studio 也可以写汇编?涨见识了

Visual Studio 上的debug功能比较强大,使用visual studio 可以更好的帮助我们学习汇编语言。

综上参考了几位牛人博主以及自己的一点总结使 vs 成功在电脑上运行。

第一步下载vs【从官网下载或者百度】

第二步打开vs新建项目

并找到windows桌面向导(最好是这个其他的像空项目或桌面应用程序均无法运行

新建之后选择空项目复选框并取消安全开发生命周期检查

第三步在项目源文件中新建

在创建文件之前,先右键项目–>生成依赖项–>生成自定义–>勾选【masm】内一项–>创建.asm文件

右击project1选择属性

找到 链接器 – 系统 – 子系统 选择控制台

在链接器-高级 – 入口点输入main

输入测试程序:

.386

.model flat,stdcall

.stack 4096

ExitProcess poto,dwExitCode:dword

.code

main proc

mov eax,5

add eax,6

invoke ExitProcess,0

main endp

end main

我们可以在main前双击设置断点观察寄存器的值!

不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~

【值得关注】我!

C语言入门资料:

C语言必读书籍:

全栈程序员正在等你加入~

想学PLC编程?先弄清5种PLC专用语言!

PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言。

图形化编程语言包括:

梯形图(LD-Ladder Diagram);

功能块图(FBD - Function Block Diagram);

顺序功能图(SFC - Sequential Function Chart)。

文本化编程语言包括:

指令表(IL-Instruction List)& 结构化文本(ST-Strutured Text)。

IEC 1131-3的编程语言是IEC工作组 对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程语言标准。它不但适用于PLC系统,而且还适用于更广泛的工业控制领域,为PLC编程语言的全球规范化做出了重要的贡献。

继电器梯形图(LD)

继电器梯形图(LD-Ladder Diagram)语言是PLC首先采用的编程语言,也是PLC最普遍采用的编程语言。

梯形图编程语言 是从继电器控制系统原理图的基础上演变而来的,与继电器控制系统梯形图的基本思想是一致的,只是在使用符号和表达方式上有一定区别。

PLC的设计初衷是为工厂车间电气技术人员而使用的,为了符合继电器控制电路的思维习惯。

作为首先在PLC中使用的编程语言,梯形图保留了继电器电路图的风格和习惯,成为广大电气技术人员最容易接受和使用的语言。

1. 软继电器

PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与PLC存储器中映像寄存器的一个存储单元相对应。

如果该存储单元为“1”状态,则表示梯形图中对应软继电器的线圈“通电”,其常开触点接通,常闭触点断开,称这种状态是该软继电器的“1”或“ON”状态。

如果该存储单元为“0”状态,对应软继电器的线圈和触点的状态与上述的相反,称该软继电器为“0”或“OFF”状态。使用中也常将这些“软继电器”称为编程元件。

2. 能流

有一个假想的“概念电流”或“能流”(Power Flow)从左向右流动,这一方向与执行用户程序时的逻辑运算的顺序是一致的。

能流只能从左向右流动。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。

3.母线

梯形图两侧的垂直公共线称为母线(Bus bar)。

在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧母线(左母线和右母线)之间有一个左正右负的直流电源电压,母线之间有“能流”从左向右流动。右母线可以不画出。

.梯形图的逻辑解算

根据梯形图中各触点的状态和逻辑关系,求出与图中各线圈对应的编程元件的状态,称为梯形图的逻辑解算。

梯形图中逻辑解算是按从左至右、从上到下的顺序进行的。解算的结果,马上可以被后面的逻辑解算所利用。

逻辑解算是根据输入映像寄存器中的值,而不是根据解算瞬时外部输入触点的状态来进行的。

1、与电气操作原理图相对应,具有直观性和对应性;  

2、与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于掌握和学习; 

3、与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power Flow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待; 

4、与指令表程序设计语言有一一对应关系,便于相互的转换和程序的检查。

功能块图(FBD)

功能块图(FBD - Function Block Diagram)采用类似于数字逻辑门电路的图形符号,逻辑直观,使用方便,它有梯形图编程中的触电和线圈等价的指令,可以解决范围广泛的逻辑问题。

1、以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;

2、功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;

3、对控制规模较大、控制关系较复杂的系统,由于控制功能的关系可以较清楚地表达出来,因此,编程和组态时间可以缩短,调试时间也能减少。

顺序功能图(SFC)

顺序功能图(SFC - Sequential Function Chart)亦称流程图或状态转移图,是一种图形化的功能性说明语言,专用于描述工业顺序控制程序,使用它可以对具有并发、选择等复杂结构的系统进行编程。

1、以功能为主线,条理清楚,便于对程序操作的理解和沟通;  

2、对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间; 

3、常用于系统的规模较大,程序关系较复杂的场合;

 4、只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。

指令表

指令表(IL-Instruction List)编程语言类似于计算机中的助记符汇编语言,它是可编程控制器最基础的编程语言,所谓指令表编程,是用一个或几个容易记忆的字符来代表可编程控制器的某种操作功能。

1、采用助记符来表示操作功能,具有容易记忆,便于掌握的特点;

2、在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计; 

3、与梯形图有一一对应关系,其特点与梯形图语言基本类同。

结构化文本(ST)

结构化文本(ST-Strutured Text)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。

结构化文本语言表面上与 PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。

1、采用高级语言进行编程,可以完成较复杂的控制运算;

2、需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员无法完成。

3、直观性和易操作性等性能较差; 

4、常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。

提示注意:不是所有的PLC都支持所有的编程语言(如功能块图、顺序功能图就有很多低档PLC不支持),而大型的PLC控制系统一般都支持这5种标准编程语言或类似的编程语言。

还有一些标准以外的编程语言,它们虽然没有被选择进标准语言中,但是它们是为了适合某些特殊场合的应用而开发的,在某些情况下,它们也许是较好的编程语言。

比如D7-SYS的连续功能图CFC就是专为大型连续工艺控制而开发,只要调用程序中的CFC功能块就可以轻易实现象PID控制器、计数器、定位器、斜坡函数发生器等一系列特殊功能,而且不需要专门的编程知识,只需要懂得图形化处理和标准程序块的使用,进行简单的设置即可。

聊聊PLC的学习方法

1、学习PLC编程需要坚强的毅力和足够的耐心

人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。

毕竟编程工作是对人的毅力和耐心的挑战,编程需要经历无数次的试错,调试-修改-调试-修改…经过无数次失败后,当看到PLC按照自己的控制要求有条不紊的运行时,你将得到极大的成就感,这就如同打通了一个游戏的关口,那种感觉是一样的。

2、学习PLC编程需要敢于实践的信心

很多初学者往往是出于一种畏惧,担心损坏设备,而不敢进行实际操作。其实这些畏惧是没有任何道理的,只要你仔细的阅读手册,遵循标准的规范去接线实操的,都不会出什么问题。

不必担心自己写的程序会有什么问题,会影响PLC的正常工作,程序有没有问题,只有让PLC运行了才能发现。所以,要有敢于实践的信心,大胆的实践是PLC编程的必由之路。

3、编程需要有缜密的逻辑思维

编程本身就是一种逻辑思维过程。

最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。

在PLC中,以虚拟触点代替了继电器触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。所以,要理顺对象之间的逻辑关系,要有缜密的逻辑思维。

4、养成良好的编程习惯

每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。

一、理顺逻辑关系、时序关系,编制程序框图;

二、合理分配主程序、子程序和中断程序;

三、合理分配寄存器,编制寄存器符号表。

PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,可能会造成程序错误。

编制寄存器符号表不仅可以避免上述问题,而且可以使程序具备更好的可读性。

PLC提供了丰富的指令、模块,初学者编程时应尽量先使用简单的指令达到目的,这对你理解那些较为复杂的指令会有帮助,具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。

5、有一定的程序设计基础知识

有一定的程序设计基础知识,以及弄通有关PLC程序设计理论是重要的。

没有这方面的理论准备或指导,仅靠在实践中摸索,简单的问题还好办,复杂的就不好办了,不仅无从下手,而且花了很多时间与精力,也难编出质量也较高的程序,常常是事倍功半。

任何理论也都只是经验的总结,归根到底也都是来自实践。

软件工程:汇编语言和C语言在软件工程的应用,计算机学生必看

随着科学技术不断发展,软件工程在社会发展中取得了进一步发展,软件工程专业,也在各大学生根发芽,许多大学的专业教学上也取得了良好的进展。汇编语言与C语言作为两种计算机基础语言,在推动软件工程发展等方面具有重要作用,大概在大一的时候,学校就会进行这两门语言的相应的教学。本文将对汇编语言与C语言概念进行分析和研究,并阐述汇编语言和C语言在软件工程中的应用,希望对你有帮助。

注:本文着力点是C语言和汇编语言在软件工程中的应用,以此来进一步认识这两种语言,请注意。

  软件工程作为一门工程化方法,是构建及维护有效的、高质量软件学科,广泛应用于工业、银行及航空等多个领域发展中,并发挥着积极的促进作用,而汇编语言与C语言是低级与高级语言,各自存在一定优势及缺陷,如何更好的使用两种语言受到越来越多的关注。至此,加强对汇编语言及C语言在软件工程应用的研究具有现实意义。

  汇编语言主要是指汇编指令集、伪指令集及使用规则的总称,通过具有特点的符号作为助忆符号,用符号地址等组合成为汇编格式指令。C语言主要是指一种编程语言,实现简便、效率高且要求低的运行的编程目标,两种语言都是软件工程编写的基础。

  汇编语言是建立在传统机器语言基础之上的,保留了传统语言的优势的同时,突破了传统语言的弊端,能够对关键程序代码进行准确控制,且能够直接访问并控制相应的硬件系统,促使硬件发挥积极作用,从而确保系统稳定运行,不仅如此,汇编语言程序编译后的目标代码空间需求较小,执行效率较高,在系统软件程序和过程控制程序中的应用比较广泛、且普遍,其具有独特的优势,是其他语言难以取代的。但是,事物具有两面性,汇编语言也存在一定不足,由于其基础是机器语言,使得其对象没有发生变化,没有改变其是一种低级语言的地位,且理解难度也较高。

在软件开发中应用此语言,效率并不明显,且针对硬件系统而言,且精确度并不高,兼容性较差,即便是类似硬件也不能够通用。在软件工程中,汇编语言凭借自身与硬件系统联系密切,且能够实现直接访问,很多系统软件都采用汇编语言进行编程,还包括一些对处理速度要求较高的程度也是通过汇编语言编写的。不仅如此,在系统核心部分、软件加密、解密及计算机病毒分析等方面也都具有广泛的应用。

在一些行业中,汇编语言是不可缺少的,只能够选择它,在熟悉的程序员手中,使用汇编语言能够显著提升效率及性能,但是,其弊端是需要利用更长的时间进行调整和优化。汇编语言在一些工业企业中,制作4位单片机等,以此来实现对工业生产过程的控制和管理,另外,针对需要快速及实时响应的场合,也需要选择汇编语言,例如:仪器仪表及工业控制设备等,一般情况下,汇编语言应用于最底层,驱动程序及嵌入式操作程度等,随着现代软件系统不断发展,汇编语言逐渐成为计算机专业学生必须了解和掌握的一门课程,能够帮助学生认识计算机运行原理,夯实计算机相关知识基础。

  C语言自上个世纪90年代出现在计算机领域中,C语言作为一种高级语言,不仅具有人性化特点,还包括汇编语言的特性,受到软件工程开发广泛关注,其本质是高级与低级语言有机结合的编程工作单元,通过函数、循环等应用,能够形成结构化设计方法,提高系统层次性、清晰度等方面具有积极作用,且方便用户调试和维护。

C语言自身优势很多,运算符丰富,实现多样化表达,满足多元化需求,且数据类型较多,例如:指针型、实型等类型,能够实现相对复杂的数据运算任务,相比较而言,C语言更具有灵活性,兼顾人性化及实用性两方面,能够直接对对位地址和字节地址进行操作,另外,运用C语言编写源程序,不仅系统质量高,而且执行效率也很高为更好地移植和修改奠定了坚实的基础,诚然,C语言也存在一定缺陷,灵活度高,使得其对语法规则要求并不严格,使得变量类型规范也受到一定影响,存在一定安全隐患,初学者刚接触C语言时,难以更好地接受和理解,增加了学习难度。

指针作为C语言在软件工程中应用的关注点,针对与硬件联系较多的程序,C语言编写程序更为高效,且多种机型及操作系统也可以选择C语言,帮助人们直接访问地址,及时检查语法错误,纠正错误,既能够提高系统质量,也能够有效提高系统运行效率。未来,C语言将会广泛应用于系统程序编写中。综上所述,汇编语言与c语言自身都存在优势及缺陷,单纯的使用一种语言,难以发挥有效作用,且不利于软件工程开发,至此,可以将二者有机结合,实现优势互补,在程序编写过程中,发挥各自优势,更好地满足用户对系统的需求。

  结论:根据上文所述,软件工程作为一项综合性工程,在促进社会发展等方面占据不可替代的位置,而汇编语言与C语言作为实现软件工程开发的核心,二者均具有自身独特的优势及不足,为了更好地实现程序编写,应将二者结合在一起,取二者之长,提高系统软件可读性、灵活性,进而为用户提供更加优质的服务。

补充:想要在程序员生涯内有更高的成就的话,最最重要的是尽可能的提升自己的编程能力,并且,与其想着怎么去提升,不如从现在开始动手动脑,如果对于C/C++感兴趣的话,可以关注+私信小编【C/C++编程】有一些视频希望可以帮助到你,学习不怕从零开始,就怕从不开始。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。