安理工骨计算机科学与技术系李豪兆 《汇编语言》 2.存储模型与简化段定义伪指令 前面介绍了完整的段定义格式,用完整段定义格式虽然可以控制段 的各种属性,但程序员很少使用。现在的汇编程序提供了一种简化的 段定义方式,它使定义段更简单、方便。具体形式如下: MODEL SMALL 定义存储模式 STACK ;定义堆栈段 DATA ;定义数据段 ;定义数据 CODE 定义代码段 STARTUP ;程序起始点,并建立DS和SS内容 程序代码 EXITO 程序结束点,返回DOS 子程序 END 汇编结束
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 2. 存储模型与简化段定义伪指令 前面介绍了完整的段定义格式,用完整段定义格式虽然可以控制段 的各种属性,但程序员很少使用。现在的汇编程序提供了一种简化的 段定义方式,它使定义段更简单、方便。具体形式如下: .MODEL SMALL ;定义存储模式 .STACK ;定义堆栈段 .DATA ;定义数据段 ... ;定义数据 .CODE ;定义代码段 .STARTUP ;程序起始点,并建立DS和SS内容 ... ;程序代码 .EXIT 0 ;程序结束点,返回DOS ... ;子程序 END ;汇编结束
安理工骨计算机科学与技术系李豪兆 《汇编语言》 存储模式与简化段定义伪操作 (1) MODEL伪操作 MODEL存储模式[语言类型][操作系統类型][堆栈选项] 存储模式:tiny所有数据和代码都放在一个段com(0100H sma1所有数据和代码各放在一个段 medium代码使用多个段,数据合并一个段 compact所有代码使用一个段,数据可放多个段 1arge数据和代码都可用多个段 huge数据和代码都可用多个段,数据段可超过64K f1at允许用32位偏移量,DS下不允许
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 存储模式与简化段定义伪操作 (1) MODEL 伪操作 .MODEL 存储模式 [,语言类型] [,操作系统类型] [,堆栈选项] 存储模式:tiny 所有数据和代码都放在一个段 .com(0100H) small 所有数据和代码各放在一个段 medium 代码使用多个段 ,数据合并一个段 compact 所有代码使用一个段 ,数据可放多个段 large 数据和代码都可用多个段 huge 数据和代码都可用多个段 ,数据段可超过64K flat 允许用32位偏移量,DOS下不允许。 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》
安理工骨计算机科学与技术系李豪兆 《汇编语言》 ①TINY:该存储类型是为编写COM文件类型而设置的。 ② SMALL:所有的数据变量必须在一个数据段之内,所有的代码也 必须在一个代码段之内。在这种模型下,数据段寄存器的内容保持不 变,所有转移也都是段内转移。 ③ MEDIUM:所有的数据变量必须在一个数据段之内,但代码段可 以有多个。在这种模型下,数据段寄存器的内容保持不变,转移可以 是段间转移。 ④ COMPACT:数据段可以有多个,但代码段只能有一。 ⑤ LARGE:数据段和代码段都可以有多个,但一个数组的字节数不 能超过64KB ⑥HUGE:数据段和代码段都可以有多个,一个数组的字节数也可以 超过64KB。 ⑦FLAT:只能在80386及其以后的计算机系统中运行
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 ① TINY:该存储类型是为编写COM文件类型而设置的。 ② SMALL:所有的数据变量必须在一个数据段之内,所有的代码也 必须在一个代码段之内。在这种模型下,数据段寄存器的内容保持不 变,所有转移也都是段内转移。 ③ MEDIUM:所有的数据变量必须在一个数据段之内,但代码段可 以有多个。在这种模型下,数据段寄存器的内容保持不变,转移可以 是段间转移。 ④ COMPACT:数据段可以有多个,但代码段只能有一。 ⑤ LARGE:数据段和代码段都可以有多个,但一个数组的字节数不 能超过64KB。 ⑥ HUGE:数据段和代码段都可以有多个,一个数组的字节数也可以 超过64KB。 ⑦ FLAT:只能在80386及其以后的计算机系统中运行
徽理工大骨计算机科学与技术系歌兆《汇编语言》 SMAL存储模式 般的程序都可用这种模式。在小型模式下,一个程 序至多只能有一个代码段和一个数据段,每段不大于64KB 这里的数据段是指数据段、堆栈段和附加段的总和, 它们共用同一个段基址,总长度不可超过64KB;因此小模 式下程序的最大长度为128KB。 访问操作数或指令都只需要使用16位偏移地址;这意 味着诸如指令转移、程序调用以及数据访问等都是近属性 (NEAR),即小型模式下的调用类型和数据指针缺省分 别为近调用和近指针
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 SMALL存储模式 一般的程序都可用这种模式。在小型模式下,一个程 序至多只能有一个代码段和一个数据段,每段不大于64KB。 这里的数据段是指数据段、堆栈段和附加段的总和, 它们共用同一个段基址,总长度不可超过64KB;因此小模 式下程序的最大长度为128KB。 访问操作数或指令都只需要使用16位偏移地址;这意 味着诸如指令转移、程序调用以及数据访问等都是近属性 (NEAR),即小型模式下的调用类型和数据指针缺省分 别为近调用和近指针
徽理工大骨计算机科学与技术系歌兆《汇编语言》 model small stack 100H data code startup exit o end
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 .model small .stack 100H .data …… .code .startup …… .exit 0 end