汇编语言编译和链接
编译
软件配置过程
在汇编基础学习记录(二)中,已经有了详细的安装教程,这里展示出我自己的配置。
最顶层路径
Assembly路径
DOSBox-0.74-3下的路径及其配置
汇编程序
将下述程序以asm后缀的形式保存于ASM文件夹下,保存名称为:TEMP.ASM
assume cs:code
code segment
mov bx,0B800H
mov es,bx
mov bx,160*10 + 40*2
mov word ptr es:[bx],5535H
mov ax,4C00H
int 21H
code ends
end
编译过程
将上述程序对应的文件进行编译,如果编译成功,则说明环境配置无误,如果编译不成功,则查看程序是否出错(编译时候出现“ 1 Severe Errors”),再查看环境是否安装正确。
调试过程
输入指令:debug 要调试的exe文件。
可以看到,每一条即将执行的指令都是asm文件中的指令。
其他概念
当前学习的进度而言,基础的段有:代码段、栈段、数据段
对应的段寄存器分别为:CS(Code Segment),SS(Stack Segment),DS(Data Segment)
伪指令
伪指令是由编译器来执行的指令,编译器根据伪指令进行编译工作。
最终生成的目标文件(exe文件)是不包含源代码中的伪指令的。
段定义伪指令
功能:定义一个段。segment指明段的开始,ends指明段的结束
语法:段名字 segment
……(汇编指令)
……(汇编指令)
段名字 ends
段关联伪指令
功能:将源代码中的某一个自定义的段与计算机中某一段寄存器相关联。
语法:assume 段寄存器:自定义段名称,……,段寄存器,自定义段名称
编译结束伪指令
功能:告诉编译器,编译到此为止。
语法:
end
其他汇编语法
程序返回
功能:程序返回,结束执行。
语法:
mov ax,4C00H
int 21H
说明:该两条语句是固定语句,语句中的数据不可变动。当计算机执行上述这两条指令后,会自动执行程序的退出返回,并结束执行的功能,一般常常跟上述的伪指令搭配,作为一个程序的固定执行语句。
注释
;是注释的修饰符号。