新手汇编里关于4个段寄存器的问题

cs是存放程序段首地址的寄存器,这个程序段是什么意思呢?比如MOVAX,267,这里的267是属于程序段里的吗?DS,ES,SS这些放数据段的地址,所谓的数据段里的数据又... cs是存放程序段首地址的寄存器,这个程序段是什么意思呢?比如MOV AX,267,这里的267是属于程序段里的吗?DS,ES,SS这些放数据段的地址,所谓的数据段里的数据又是哪来的呢,267是在数据段里吗?求大神解释一下4个段寄存器的具体作用,比如每个段里的内容到底是哪来的? 展开
 我来答
胖大海君
2012-09-07 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1436
采纳率:11%
帮助的人:645万
展开全部
嘿嘿 还是俺来帮你解答吧
1 cs是存放程序段首地址的寄存器 该段地址从CS*16开始 有64K空间可以存放用户的程序代码
比如 MOV AX,267 这条指令 就是存在从CS*16开始的代码段中的。
267是指令中的操作数 和指令是一体的 都存在代码段中。
不可当作独立的数据而进行单独存储的。
2 DS是数据段的段寄存器、ES是附加段的段寄存器、SS是堆栈段的段寄存器。
3 数据段可以用来存放用户的数据 包括各种表格数据 堆栈段用来存放用户子程序调用和中断程序产生的断点地址和临时数据的。附加段是存放用户的备用数据等的。
4 数据段里的数据是用户自己 定义的
如 sum dw 1234H
a db 67

呵呵 别往给俺加分哦 有问题可以继续问
追问
还有个问题在C里面局部变量是放在栈里面,malloc系列是在堆里开辟空间,在汇编里的栈和堆也是这个意思吗
追答
是的
做而论道
高能答主

2012-09-07 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
微机原理中的存储空间地址,有 1M 个单元,管理起来,不方便。
分成一段一段的,就方便了。
每一个段,最大可以是 64K 个单元,这就至少可以分成 16 个段。

在 CS、DS、ES、SS 里面,你可以存放一个段的起始地址,(当然,也可以是操作系统为你分配地址。)
每个段里面的内容,你可以用 DB、DW 等伪指令,写入数据。
程序段里面,你应该写入各种指令,然后由编译软件,帮你编译成机器码,再存放到程序段。

到我的百度空间看看吧,有许多 80x86 的汇编程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式