4、2汇编语言源程序的结构 4、2、1汇编语言的语句格式 汇编语言源程序中的每个语句可以由4项组成,格式如下 Iname operation operand comment 「名字项]操作项操作数项;注释项 下面分别说明各项的表示方法。 1.名字项 源程序中用下列字符表示名字: 字母:A~Z或a~; 数字:0~9; 专用字符号:?、·、@ 般来讲,名字项可以是标号或变量。 (1)标号:在代码段定义,后面跟冒号: 它有三种属性:段、偏移及类型
4、2 汇编语言源程序的结构 4、2、1 汇编语言的语句格式 汇编语言源程序中的每个语句可以由4项组成,格式如下 [name] operation operand [;comment] [名字项] 操作项 操作数项 ;注释项 下面分别说明各项的表示方法。 1.名字项 源程序中用下列字符表示名字: 字母:A~Z或a~z; 数字:0~9; 专用字符号:?、•、@、―、$; 一般来讲,名字项可以是标号或变量。 (1)标号:在代码段定义,后面跟冒号: 它有三种属性:段、偏移及类型
①段属性:定义标号的段起始地址,在CX寄存器中。 ②偏移属性:16位无符号数 ③类型属性:用来指出该标号是在本段内引用还是在其 他段内引用的。 (2)变量:变量在除代码以外的其他段中定义,后面不 跟冒号。它也可以用 LABLE或EQU伪操作来定义。变量 经常在操作数字段出现。 它也有段、偏移及类型三种属性。 ①段属性定义变量的段起始地址,此值必须在一个段寄 存器中。 ②偏移属性变量的偏移地址是16位无符号数,它代表从 段的起始地址到定义变量的位置之间的字节数。在当前段 内给出变量的偏移值等于当前地址计数器的值,当前地址 计数器的值可以用$来表示。 ③类型属性变量的类型属性定义该变量所保留的字节数
① 段属性:定义标号的段起始地址,在CX寄存器中。 ② 偏移属性:16位无符号数。 ③ 类型属性:用来指出该标号是在本段内引用还是在其 他段内引用的。 (2)变量:变量在除代码以外的其他段中定义,后面不 跟冒号。它也可以用LABLE或EQU伪操作来定义。变量 经常在操作数字段出现。 它也有段、偏移及类型三种属性。 ① 段属性定义变量的段起始地址,此值必须在一个段寄 存器中。 ② 偏移属性变量的偏移地址是16位无符号数,它代表从 段的起始地址到定义变量的位置之间的字节数。在当前段 内给出变量的偏移值等于当前地址计数器的值,当前地址 计数器的值可以用 $ 来表示。 ③ 类型属性变量的类型属性定义该变量所保留的字节数
2.操作项 操作项可以是指令、伪操作或宏指令的助记符。 3.操作数项 操作数项由一个或多个表达式组成,多个操作数项之间 般用逗号分开。 4.注释项 注释项用来说明一段程序或一条或几条指令的功能,它是 可有可无的。 4、2、2汇编语言源程序的段定义 段定义伪操作的格式如下: segment-name SEGMENT segment-name ends 其中删节号部分,对于DS、ES和SS来说,一般是存贮单 元的定义、分配等伪操作;对于代码段则是指令及伪操作
2.操作项 操作项可以是指令、伪操作或宏指令的助记符。 3.操作数项 操作数项由一个或多个表达式组成,多个操作数项之间一 般用逗号分开。 4.注释项 注释项用来说明一段程序或一条或几条指令的功能,它是 可有可无的。 4、2、2汇编语言源程序的段定义 段定义伪操作的格式如下: segment-name SEGMENT … segment-name ENDS 其中删节号部分,对于DS、ES和SS来说,一般是存贮单 元的定义、分配等伪操作;对于代码段则是指令及伪操作
此外,还必须明确段和段寄存器的关系,这可用 ASSUME伪操作来实现,其格式为: ASSUME assignment,.., assignment 其中 assignment说明分配情况,其格式为: 〈段寄存器名〉:〈段名〉 其中段寄存器名必须是CS、DS、ES和SS中的一个, 而段名则必须是由 SEGMENT定义的段中的段名。4、 2、3汇编语言源程序的结构 汇编语言源程序的程序基本结构是段,一个汇编语言 源程序由若干个代码段、数据段、附加段和堆栈段组 成。段之间的顺序可以随意安排,通常数据段在前, 代码段在后。任何可执行汇编语言程序至少要有一个 代码段,通常还可能有数据段和堆栈段。每个段都有 段首指令和段结束指令,段的内容介于这两条指令之 间
此外,还必须明确段和段寄存器的关系,这可用 ASSUME伪操作来实现,其格式为: ASSUME assignment,…,assignment 其中 assignment 说明分配情况,其格式为: 〈段寄存器名〉:〈段名〉 其中段寄存器名必须是CS、DS、ES和SS中的一个, 而段名则必须是由SEGMENT定义的段中的段名。 4、 2、.3 汇编语言源程序的结构 汇编语言源程序的程序基本结构是段,一个汇编语言 源程序由若干个代码段、数据段、附加段和堆栈段组 成。段之间的顺序可以随意安排,通常数据段在前, 代码段在后。任何可执行汇编语言程序至少要有一个 代码段,通常还可能有数据段和堆栈段。每个段都有 段首指令和段结束指令,段的内容介于这两条指令之 间
其一般结构如下: SSEG SEGMENT STACK 〈堆栈段的内容 SSEG ENDS DSEG SEGMENT DATA 〈数据段的内容 DSEG ENDS CSEG SEGMENT CODE 〈代码段的内容 CSEG ENDS END〈启动标号〉 对于一般程序来说,定义太多的段只会增加程序设计 的复杂性,通常需要一个代码段、一个数据段和一个 堆栈段,有时可包含一个附加段
其一般结构如下: SSEG SEGMENT STACK 〈堆栈段的内容〉 SSEG ENDS DSEG SEGMENT DATA 〈数据段的内容〉 DSEG ENDS CSEG SEGMENT CODE 〈代码段的内容〉 CSEG ENDS END 〈启动标号〉 对于一般程序来说,定义太多的段只会增加程序设计 的复杂性,通常需要一个代码段、一个数据段和一个 堆栈段,有时可包含一个附加段