四、第一个汇编程序

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(库文件)

Guess you like

Origin blog.csdn.net/xiaoxiaoguailou/article/details/121117460