汇编语言程序
源程序
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执行。伪指令没有对应的机器指令,由编译器来执行。
xxx segment
...
xxx ends
是成对使用的伪指令。功能:定义一个段。
一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当作栈空间来使用。指令、数据、栈被划分到不同的段中。
end 是一个汇编程序的结束标记。
assume “假设”,它将有特定用途的段与段寄存器联系起来。
源程序指整个程序,程序指的是源程序中被电脑执行、处理的指令和数据。
标号
一个标号指代一个地址。比如codesg放在segment的前面,作为一个段的名称,这个段的名称最终被编译、连接程序处理一个段的段地址。
程序的结构
1、定义一个段,名称为abc
abc segment
abc ends
2、写入汇编指令
abc segment
mov ax,2
add ax,ax
add ax,ax
abc ends
end
4、abc被当作代码段来用,所以将abc与cs联系起来。
assume cs:abc
assume cs:abc
abc segment
mov ax,2
add ax,ax
add ax,ax
abc ends
end
5、程序返回
在程序末尾加上
mov ax,4c00H
int 21H
编辑源程序
使用记事本或notepad++等编辑保存为后缀为asm的文件。
编译
masm
1、source filename 输入文件所在的地址和目录。
2、Object filename 默认
3、Source listing .lst列表文件,中间文件,直接enter不生成
4、Cross-reference .crf交叉引用文件 可忽略
连接
使用LINK.EXE
连接的作用:
1、源程序较大时,分为多个源程序来编译,将他们连接起来生成一个可执行文件
2、调用库函数,连接库函数
3、生成可执行文件
谁将可执行文件中的程序装载进内存并使它运行?
程序要执行,需要由另一个程序将其装载进内存,并将CPU权限交给它。
在DOS中运行是command程序将程序加载到内存的
编程->1.asm->编译->1.obj->连接->1.exe->加载->内存中的程序->运行

浙公网安备 33010602011771号