3.3.2程序格式 1.模式定义 程序的第一部分是有关模式定义的3条语句 386 model flat. stdcall option casemap: none 这些语句定义了程序使用的指令集、工作模式。 下面讲一下指令集和工作模式
3.3.2 程序格式 ◼ 1.模式定义 程序的第一部分是有关模式定义的3条语句: .386 .model flat, stdcall option casemap:none 这些语句定义了程序使用的指令集、工作模式。 下面讲一下指令集和工作模式
(1)指令集 386语句是汇编语言的伪指令,说明使用的指令集是 哪一种CPU的。 如果用汇编语言编写的是驱动程序或者驱动程序的一 个小模块,而且驱动程序在特权级0上运行,就需要使 用.386p,后面带p的伪指令表示程序中可以使用特权 指令。 在编程中如果使用了MMX指令,除了定义.586之外,还 要加上一句.mmx伪指令 586 mmX
(1)指令集 ◼ .386语句是汇编语言的伪指令,说明使用的指令集是 哪一种CPU的。 ◼ 如果用汇编语言编写的是驱动程序或者驱动程序的一 个小模块,而且驱动程序在特权级0上运行,就需要使 用.386p,后面带p的伪指令表示程序中可以使用特权 指令。 ◼ 在编程中如果使用了MMX指令,除了定义.586之外,还 要加上一句.mmx伪指令: .586 .mmx
(2)工作模式 model语句用来定义程序工作的模式,它的格式是: model内存模式[,调用规则][,其他模式] 内存模式的定义影响最后生成的可执行文件 在D0S的可执行程序中,可用到.com文件和.exe文件 在 Windows环境下,可执行程序只有一种内存模式, 即Flat(平坦)模式
(2)工作模式 .model语句用来定义程序工作的模式,它的格式是: .model 内存模式[,调用规则][,其他模式] 内存模式的定义影响最后生成的可执行文件 ◼ 在DOS的可执行程序中,可用到.com文件和.exe文件。 ◼ 在Windows环境下,可执行程序只有一种内存模式, 即Flat(平坦)模式
(2)工作模式(续) 在DOS下的汇编语言程序中,常常有这样的程序片段: MOV AX. DATA MOV DS,AX其作用是给数据段寄存器DS赋值 在编程时,必须考虑这些DS,ES,SS等段寄存器是否 正确设置 在 Windows汇编语言程序中,则不必考虑这些问题。在 程序中,不需要也不应该给CS,DS,ES,SS等段寄存 器赋值
(2)工作模式(续) ◼ 在DOS下的汇编语言程序中,常常有这样的程序片段: MOV AX, DATA MOV DS, AX 其作用是给数据段寄存器DS赋值。 在编程时,必须考虑这些DS,ES,SS等段寄存器是否 正确设置。 ◼ 在Windows汇编语言程序中,则不必考虑这些问题。在 程序中,不需要也不应该给CS,DS,ES,SS等段寄存 器赋值
(3) option语句 option语句有许多选项,这里介绍一种: option casemap: none 这条语句说明程序中的变量和子程序名是否对大 小写敏感。 由于 WindOws api函数中的函数名称是区分大小 写的,所以应该指定这个选项“ casemap:none
(3)option语句 ◼ option语句有许多选项,这里介绍一种: option casemap:none 这条语句说明程序中的变量和子程序名是否对大 小写敏感。 由于Windows API函数中的函数名称是区分大小 写的,所以应该指定这个选项“ casemap: none