
用汇编语言编写的叫做汇编语言源程序,而汇编程序是汇编语言源程序经过编译后的结果。
1、汇编程序相当于编译器吧,高级语言叫编译器,汇编语言叫汇编器,也就是汇编程序。
2、汇编源程序当然是用户写的源代码了。
3、汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序
4、汇编源程序当然就是源代码,源代码就是文本形式的代码,还没编译连接成为可执行程序。
先在记事本里输入代码后,再用汇编编译器编译。
具体过程如下:
1、编辑:用编辑软件(EDITEXE或记事本)形成源程序(ASM),如:LXASM;
2、汇编:用汇编程序(MASMEXE)对源程序进行汇编,形成目标文件(OBJ),格式如下:MASM LXASM;
3、连接:用连接程序(LINKEXE)对目标程序进行连接,形成可执行文件(EXE),格式如下:LINK LXOBJ;
4、执行:如果结果在屏幕在显示,则直接执行可执行文件。
5、调试:用调试程序(LINKEXE)对可执行文件进行调试,格式如下:DEBUG LXEXE
------------------------------------
masmexe与linkexe下载
>
汇编语言程序设计步骤:
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、逐条编写程序DATASEGMENTFENDB85,90,60,75,87,35,80,78,96,82;存分数MAXDB;存最高分DATAENDSSTACKSEGMENTPARASTACK‘STACK’DB100DUP();100字节堆栈STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTARTPROCFARPUSHDSMOVAX,0PUSHAX;为了返回DOSMOVAX,DATAMOVDS,AX;置数据段寄存器MOVBX,OFFSETFEN;置数据指针MOVCX,MAX-FEN;置计数器初值DECCX;N个分数比较N-1次MOVAL,[BX];取第一个分数LOP:INCBX;调整指针CMPAL,[BX];与下一数比较JAENEXT;大于等于则转MOVAL,[BX];否则取下一数NEXT:LOOPLOP;计数器减一,;不为零转LOPMOVMAX,AL;存放最高分RET;返回DOSSTARTENDPCODEENDSENDSTART6、静态检查,上机调试选用指令尽量字节少,使其执行速度快
易错处应重点查,如比较次数、转移条件等
确信无错后方可上机调试
直接用proteus。
用c语言的程序,但转换的结果不是太理想,跟反汇编差不多,需要自己去整理,其转移的标号需要自己重新定义,转换结果里是用行地址替代的。
先将汇编语言编译成HEX或BIN文件,再通过相应的下载手段把文件下载进去,编译的话比如WAVE软件就可以,很多的,下载的话要看什么型号的单片机了,有些支持在线ISP下载,那么电脑装个软件,通过232串口连接到板子上,就可以了,有些呢,是需要买专门的烧写器的。
简单汇编程序
简单汇编程序 又称“装入并执行”式汇编程序。由于简便而得到广泛使用。这种汇编程序的特点是汇编后的机器语言程序直接放在内存之中准备执行。目标程序所占据的存储位置是在汇编时固定的,并且以后不能改变,所以这种工作方式不能将多个独立汇编的子程序合并为一个完整的程序,而且只能调用位置与目标程序不冲突的程序库中的子程序。
百度百科-汇编程序
以上就是关于1、汇编程序与汇编语言源程序的区别全部的内容,包括:1、汇编程序与汇编语言源程序的区别、汇编程序是怎么编译的、汇编语言程序设计步骤有那几步_汇编语言编程步骤有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)