对一个简单汇编程序分析

程序:

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

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

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值