| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 605 人关注过本帖
标题:建立分支表的时候把标号定义在数据段里啥意思
取消只看楼主 加入收藏
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
结帖率:94.87%
收藏
已结贴  问题点数:20 回复次数:1 
建立分支表的时候把标号定义在数据段里啥意思
在学汇编语言分支结构的时候有一只分支表的方法,就是在数据段建立一个表,表中存放要转移的程序段的名字(标号)
程序代码:
DATAS SEGMENT
    table dw prog0,prog1,prog2,prog0 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
  
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

可以单这样定义是通不过的
程序代码:
DATAS SEGMENT
    table dw prog0,prog1,prog2,prog0 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
   prog1:
   prog2:
   prog0:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

在代码段写了标号之后就可以编译通过了,
我想请教一下为什么,
是不是代码段先于数据段放入内存,然后在进行数据段的存储,
那table开始的那个数据段存放的是什么。
2014-05-07 17:20
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
我的想法应该是正确的,数据段内存存的是 代码段标号位置的偏移地址
2014-05-07 18:18
快速回复:建立分支表的时候把标号定义在数据段里啥意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023327 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved