天天看点

汇编segment伪指令

segment是段,是段定义的伪指令。在汇编中有数据段,代码段,堆栈段和附加段

[格式]

segment_name SEGMENT 【定位类型】 【组合类型】 【类别名】

···;here is your code

segment ends

注:【】都是在英文输入法下的符号,此处无法打出所以才用了中文状态下的【】

参数解释:

  1. 【定位类型】

    指明段开始的边界,如para,它使段定位在小段的边界,段首地址正好能被16整除,定位类型未指定时默认为para

    段的定位类型有4种,分别是:

    1. page(页起始),起始地址以00H结尾,能被256整除
    2. para (节起始),起始地址以0H结尾,能被16整除
    3. word(字起始),起始地址末位为0,是偶地址
    4. byte (字节起始),起始地址为任意边界
  2. 【组合类型】

    决定本段是否要和其他段组合在一起,组合类型有:stack,common,public

  3. 【类别名】

    连接时用于相关段组合在一起,如代码段’code’,数据段’Data’,堆栈段’Stack’

例子: stack segment para stack ‘stack’

解释: para表明该段起始地址对齐到para。 1 para= 16 bytes。stack声明该段是堆栈段,这样在最后的链接link时,会将该最终创建的exe文件头部的SS:SP域指向该段的末尾

‘stack’表明该段的组合名为’stack’。同一程序不同模块中,相同组合名的段会组合到一起。组合名也决定了最后exe文件中各个段的排列顺序

参考文档:

微机中的一些解释

SEGMENT伪指令说明

继续阅读