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

对一个简单汇编程序分析

程序员文章站 2022-05-03 15:52:59
...

程序:

assume	cs:codesg

codesg	segment
	
		mov		ax,0123H
		mov		bx,0456H
		add		ax,bx
		add		ax,ax
	
		mov		ax,4c00H
		int		21H

codesg	ends

end

伪指令
伪指令是写给编译器看的,CPU不会执行,在源程序中,包括两种指令,一个是汇编指令,一个是伪指令。汇编指令会生成对应的机器码,而伪指令不会生成机器码,最终不会被CPU执行

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

比如上面程序中:

codesg	segment
		:
codesg 	ends

一个汇编程序由多个段组成,一个有意义的汇编程序中至少要有一个段,这个段用来代码

  1. end
    功能:一个汇编程序的结束标记
    注意:要分清楚end和ends,end是整个程序结束的标志,ends是一个段的结束

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

源程序中的程序
源程序就是我们写的代码,可以将源程序文件中所有的内容称为源程序,最终由计算机执行的才叫程序
对一个简单汇编程序分析
标号
汇编源程序中,除了汇编指令和伪指令外,还有些标号,比如codesg。一个标号指代一个地址,比如codesg在segment前面,作为一个段的名称,这个段的名称最终将被编译,连接程序处理为一个段的段地址

程序的返回

		mov		ax,4c00H
		int		21H

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

在最后再说一下程序是由段构成的

相关标签: win32汇编