上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4 MASM程序的结构剖析
一个典型的(并且可以独立运行的)MASM程序如程序清单1-1所示。
程序清单1-1 一个简单的shell程序(programShell.asm文件)
;注释是从一个分号字符开始到行尾的所有文本。
;“.code”伪指令指示MASM该指令后的语句位于保留给机器指令(代码)的内存段(section)中。
.code
;以下是“main”主函数的定义。
;(本示例假定该汇编语言程序是一个独立可运行的程序,拥有自己的main主函数。)
main PROC
;此处包含机器指令
ret;返回到调用方
main ENDP
;END伪指令标记源代码文件的结束。
END
典型的MASM程序包含一个或多个段,段表示内存中出现数据的类型。这些段以MASM语句(例如“.code”或“.data”)开始。变量和其他内存值均位于数据段(data section)中,汇编语言过程中的机器指令位于代码段(code section)中。在汇编语言源文件中,不同的段是可选的,因此特定的源文件中并非包含每种类型的段。例如,程序清单1-1只包含一个代码段。
在程序清单1-1中,“.code”语句是一条汇编伪指令。汇编伪指令的功能是指示MASM有关程序的一些信息,并不是实际的x86-64机器指令。具体而言,“.code”伪指令指示MASM将其后面的语句分组到一个特殊的内存段中,而这个内存段是专门为机器指令预留的。