4.2 源程序

 

汇编源程序

 

1. 伪指令

汇编中的指令:

  1. 汇编指令
  2. 伪指令

汇编指令:有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。

伪指令:没有对应的机器指令,最终不被CPU所执行。是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作。

常见伪指令

1. XXX segment

    。。。

    XXX ends

segment与ends成对出现,功能是定义一个段,segment说明一个段开始,ends说明一个段结束。

一个段必须要由一个名称来标识,如上面的'XXX'

一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当做栈空间来使用。汇编中段的概念在汇编源程序中得到了体现,一个源程序中所有将被计算机所处理的信息:指令、数据、栈,被划分到了不同的段中。

一个有意义的汇编程序至少要有一个段,这个段用来存放代码(指令)。

 

2. end

汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令end,就结束对源程序的编译。

 

3. assume

assume的功能是假设某一段寄存器和程序中的某一个用segment...ends定义的段相关联。

用assume将有特定用途的段和相关的段寄存器关联起来即可。

 

 

2. 源程序中的“程序”

 

我们可以将源程序文件中的所有内容成为源程序,将源程序中最终由计算机执行处理的指令或数据,称为程序

 

3. 标号

汇编源程序中,除了汇编指令和伪指令外,还有一些标号,比如“codesg”。一个标号指代了一个地址。比如cdesg在sgment前面,作为一个段的名称,这个段的名称最终将被编译、连接程序处理为一个段的段地址。

 

4. 程序的结构

采用debug程序来编写汇编程序难以写出复杂的程序。所以我们需要先编写有结构化的源程序

源程序如何写?

1). 定义段

abc segmet

..

abc ends

2). 段中写入汇编指令

abc segment

mov ax,2

abc ends

3). 指明哪里结束

abc segment

mov ax,2

abc ends

end

4). 将段与寄存器联系起来

assume cs:abc

abc segment

mov ax,2

abc ends

end

5). 程序返回

我们的程序最先以汇编指令的形式存在源程序中,经编译、连接后转变为机器码,存储在可执行文件中,那么它怎样得到运行呢?

定义

一个程序结束后,将CPU的控制权交还给使它得以运行的程序,我们称这个过程为:程序返回。

应该在程序的末尾添加返回的程序段。

mov ax,4c00H

int 21H

这两条指令所实现的功能就是程序返回。

 

6. 语法错误和逻辑错误

逻辑错误是在程序编译时不能表现出来、在运行时发生的错误

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值