欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

四、第一个汇编程序

程序员文章站 2022-03-10 09:44:48
...

4 第一个汇编程序

4.1 基础了解

一个汇编源文件变成可执行的二进制文件需要的步骤:

  1. 编译
  2. 链接

一个可执行文件包括两个信息:

  1. 程序和数据
  2. 程序的描述信息

操作系统根据可执行程序的描述信息,把可执行文件中的机器码和数据加载到内存中,并进行相关的初始化,(比如设置cs:ip指令段的地址、栈段、数据段等),然后再由CPU执行

4.2 源程序

1)伪指令:

伪指令、符号体系(+ - * /)由编译器执行的指令,编译器根据伪指令进行相关的编译操作

常用的伪指令:

  1. segment ends定义一个段

    XXX segment			//XXX段开始
    XXX ends			//XXX段结束
    
    //上面指令是用来定义一个段
    
  2. end汇编程序结束标记

    end
    
  3. assume“假设” 将特定的段和段寄存器关联起来

assume cs:codesg	//将codesg代码段和cs寄存器关联起来
codesg segment		//定义名为codesg的代码段
	...
codesg ends

end  				//汇编程序结束

2)源程序中的“程序”

程序包括:伪指令、汇编指令

编译器处理伪指令,CPU最终执行指令和处理数据

3)标号

一个标号代表一个地址,段的名称codesg ,最终经过编译链接会变成一个段的段地址

4)程序结构

示例:编程计算2的3次方

assume cs:codesg

codesg segment
	mov ax,2
	add ax,ax
	add ax,ax
	mov ax,4c00H
	int 21H
codesg ends

ends

5)程序返回

一个程序结束后,将CPU的控制权交给它运行的程序

使用下面两句汇编指令进行返回

mov ax,4c00H
int 21

6)编译、链接

masm test.asm		//编译
link test.obj		//链接

编译:最多可以生成三个文件,.obj (目标文件)、列表文件(.lst)、交叉引用文件(.crf)

链接:.exe(可执行二进制文件) .map(可以看各个段的大小) .lib(库文件)

相关标签: 汇编语言 汇编