汇编语言学习笔记(4)

 45.第一个完整汇编源程序:

e.g:

     assume cs:code

     code  segment

     start: mov ax,0123H

               mov bx,0456H

               add  ax,bx

               add  ax,ax

 

               mov  ax,4c00H

               int   21H

      code ends

      end

a)汇编指令:有对应的机器码

b)伪指令:给编译器执行的指令

在例子中出现了三种伪指令:

              XXXXX    segment

              XXXXX     ends

segment和ends是一对成对使用的伪指令.写可以被编译的汇编程序时必须要用到的一对伪指令.segment和ends的功能是定义一个段,segment说明一个段开始,ends说明一个段结束.一个段必须有一个名称来标识,使用格式为:

         code(段名)      segment                   //定义一个段,段名为code

         code(段名)      ends                         //名称为code的段到此结束

46.一个汇编程序是由多个段组成的,这些段被用来存放代码,数据或当作栈空间来使用.一个源程序中所有被计算机处理的信息:指令,数据,栈等可以被划分到不同段中.

 

47.end:是一个汇编程序结束标记,在编译过程中,如果碰到伪指令end,就结束编译.----不要混淆end(用于结束编译)和ends(用于结束段).

48.assume:假设,它假设某一段寄存器和程序中的某一个用segment...ends定义的段相关联.通过assume说明这种关联,在需要的情况下,编译程序可以将段寄存器和某一个具体的段相联系.记着用assume可以将有特定用途的段和相关寄存器关联起来即可.

 

49.标号:如code,一个标号指代了一个地址 .code在segment前面,做为一个段的名称,这个段的名称最终将被编译,连接程序处理为一个段的段地址.

50.程序的结构:

     a)定义一个段;(segment...ends)

     b)在段中写入汇编命令;

     c)指出在哪个地方结束;(end)

     d)code被当作代码段来使用,所以和cs寄存器关联起来.

   assume   cs:code

   code   segment

   mov    ax,2

   add     ax,ax

   add     ax,ax

    code  ends

    end

 

51.程序返回:一个程序结束后,将CPU控制权交还给使它得以运行的程序,这个过程称为程序返回.----How...?

   在程序末尾添加返回的程序段:

                   mov     ax,4c00H

                   int        21H

  可以实现程序的返回.

52.a)段结束:段名  ends                   伪指令         编译器执行

     b)程序结束:  end                        伪指令         编译器执行

     c)程序返回:mov ax,4c00H     int  21H     汇编指令                 CPU执行

 

53.汇编程序过程:编程-->编译-->连接-->加载-->内存中的程序-->运行.

你可能感兴趣的:(汇编语言学习笔记(4))