汇编网首页登录博客注册
crazyman的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
友情链接

[2009-01-14 17:12] ANSI C 学习预备

由于ANSI C中的学习有涉及到汇编写C启动代码的地方,汇编只学了王爽老师的《汇编语言》所以,有些知识还真的自己动手再去搜集一下。

1.段的声明
我们习惯了
data segment
...
data ends
这样的段声明形式了,原来这只是段声明的一个“简化版”,具体的格式是这样的
段名 segment [对齐类型][组合类型][‘类别’]
...
段名 ends
====================
定位类型:说明段的起始边界值(物理地址)。

定位类型 
BYTE  段可以从任何地址边界开始 
WORD  段从字边界开始,即段的起始边界值为偶数 
DWORD 段从双字的边界开始,即段的起始边界值为4的倍数 
PARA  段从小段边界开始,即段的起始边界值为16 (或10H) 的倍数 
PAGE  段从页边界开始,即段的起始边界值为256 (或100H) 的倍数 

注意:
  定位类型的缺省项是PARA,即在未指定定位类型的情况下,则连接程序默认为PARA。BYTE和WORD用于把其它段(通常是数据段)连入一个段时使用;DWORD一般用于运行在80386及后继机型上的程序。

====================


组合类型:说明程序连接时的段组合方法。
组合类型 说 明 
PRIVATE 该段为私有段,连接时将不与其它模块中的同名段合并 
PUBLIC 该段连接时将与其它同名段连接在一起,连接次序由连接命令指定 
COMMON 该段在连接时与其它同名段有相同的起始地址,所以会产生覆盖 
AT 表达式 段地址=表达式的值,其值必为16位但AT不能用来指定代码段 
MEMORY 与PUBLIC同义 
STACK 将多个同名堆栈段连接在一起,SP设置在第一个堆栈段的开始 

注意:组合类型的缺省项是PRIVATE。
=============================

2.段组定义伪指令

  段组定义伪指令能把多个同类段合并为一个64KB的物理段,并用一个段组名统一存取它。段组定义伪指令GROUP的格式如下:

  段组名 GROUP 段名 [, 段名 …]

  我们已经知道在各种存储模型中,汇编程序自动地把各数据段组成一个段组DGROUP,以便程序在访问各数据段时使用一个数据段寄存器DS,而GROUP伪指令允许用户自行指定段组。

3.public:定义外部模块能够访问的变量
   extrn:定义引用外部模块的变量

4.lable 在段中为一个地址位置定义一个符号名,也就是给一个标号定位一个地址。

【暂时这么多,可以看懂点那个汇编程序了,知其“然”了,下一步就是分析其“所以然”了。】
评论次数(3)  |  浏览次数(1231)  |  类型(默认类型) |  收藏此文  | 

[  crazyman   发表于  2009-01-18 17:37  ]

也没人来踩踩。

[  feitian7376   发表于  2009-01-18 17:46  ]

哈哈,我来踩踩!

[  xijietianxia   发表于  2009-01-18 18:14  ]

我还是复习一下c语言才来学后面吧,c太久没用...

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码