zoukankan      html  css  js  c++  java
  • 汇编语言 第四章 第一个程序

    第一个程序

    1.首先我们写一段简单的汇编语言源程序

    assume cs:code
    code segment
      mov ax,0123h
      mov bx,0456h
      add ax,bx
      add ax,ax
      mov ax,4c00h
      int21h
    code ends
    end
    

    那么该程序中出现了什么呢

    1.伪指令

    • segment和ends

    segment 和 ends是一对成对使用的伪指令,在写可被编译的汇编程序时,必须要用到的一对伪指令。他、它们的功能是定义一个段,segment为开始,ends为结束。格式为:

    段名  segment
    段名  ends
    

    一个汇编程序是由多个段组成的,这些段用来存放代码、数据或当作栈空间来使用。而一个有意义的汇编程序至少要有一个段用来存放代码。

    • end

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

    • assume

    这条伪指令的含义为假设。它用来假设某一段寄存器和源程序中的某一个用segment和ends定义的段相关联。

    2.程序

    即源程序中的汇编指令组成了最终由计算机执行的程序。

    3.标号

    汇编语言源程序中,还有一些标号,如“code”。一个标号指代了一个地址。比如code在segment的前面,作为一个段的名称,这个段的名称最终将被编译、连接程序处理为一个段的段地址。

    4.程序的结构

    • 我们首先定义一个段,名称为code
    code segment
    
    code ends
    
    • 写入汇编指令
    • 指出程序在何处结束
    	code segment
    	...........
    	code ends
    end
    
    • code被当作代码段使用,所以应该将code和cs连系起来
    assume cs:code
    	code segment
    	...........
    	code ends
    end
    
    • 程序返回

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

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

    mov ax,4c00h
    int 21h
    

    2.程序的执行

    • 使用文本编辑器编辑程序,生成 .asm
    • 使用masm编译该程序生成 .obj
    • 使用link连接目标文件,生成 .exe
    • 最后直接输入程序名运行
  • 相关阅读:
    【BZOJ3926】诸神眷顾的幻想乡 【广义后缀自动机】
    【BZOJ2780】Sevenk Love Oimaster【广义后缀自动机】
    【BZOJ3227】串【广义后缀自动机】
    【CodeForces
    【BZOJ3238】差异【后缀自动机+dp】
    【BZOJ4566】找相同字符【后缀自动机】
    【BZOJ3998】弦论 【后缀自动机】
    【poj1743】Musical Theme 【后缀自动机】
    【SPOJ
    【SPOJ
  • 原文地址:https://www.cnblogs.com/-Anguvia-/p/9973870.html
Copyright © 2011-2022 走看看