一种简化的段定义伪指定

1).model 存储模式
其中,存储模式有如下7种:
(1)TINY:用于创建COM类型程序,所有的段地址寄存器都被设置为同一值,表明所有的数据和代码都在同一个段内。一般用于小程序
(2)SMALL:一一般应用程序最常用的模式,所有的数据都在64KB的数据段内,而所有指令代码都放在一个64KB的代码段内,这意味访问数据和指令需要16位的偏移地址。
(3)COMPACT:所有指令代码都放在一个64KB的代码段内,但可以有多个数据段,转移类指令的默认属性是近转移,而数据则必需用32位的指针,以区别不同的段。
(4)MEDIUM;所有数据都放在一个64KB的数据段内,而允许有多个代码段,这样,转移类指令的默认属性是远转移或远调用,而访问数据只需要16位的偏移地址。
(5)LARGE;允许使用多个代码段和数据段
(6)HUGE:与大弄模式基本相同。
(7)FLAT:创建一个32位的程序,必须采用FLAT模式。DOS下不能使用FLAT模式。
2)简化段定义伪指令
.STACK[大小];建立一个堆栈段,段名是STACK,可以指定堆栈的大小,默认值为1KB
.DATA       ;建立一个数据段,主要用于定义一些具有初值的变量
.DATA?      ;建立一个数据段,用于定义一些无初值的变量
.CODE[段名] ;建立一个代码段
.STARTUP    ;用来定义程序的入口点,并产生设置DS,SS,SP寄存器的代码。程序中使用用了STARTUP伪指令,则程序结束指令END不必指定程序开始的标号

.EXT[返回值];产生程序终止并返回操作系统的代码,通常用0作为返回值

3)与简化段定义有关的预定义符号

@CODE   ;表示.CODE定义的代码段名,也是代码段的段地址

@DATA    ;表示.DATA定义的数据段名,也是数据段的段地址

@STACK  ;表示.STACK定义的堆栈段名,也是堆栈段的段地址

·CODESIZE;表示代码段的大小

.DATASIZE;表示数据段的大小

4)简化的段定义源程格式

.MODEL SMALL;定义程序的存储模式

.STACK            ;建立一个堆栈段

.DATA              ;建立一个数据段

 .

 .

 .

.CODE             ;建立一个代码段

.STARTUP        ;设置程序的起始点

 .

 .

 .

.EXIT 0            ;程序结束,返加操作系统

END                 ;汇编结束

其中,.STARTUP 语句可以用以下两条指令代替:

   START: MOV AX,@DATA

                MOV DS,AX

而.EXT 0语句可以用以下两条指令代替:

       MOV AX,4C00H

       INT 21H

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值