. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  3.10栈段的问题  [待解决] 回复[ 4次 ]   点击[ 311次 ]  
lem2882
[帖 主]   [ 发表时间:2009-06-26 13:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-02-02 06:19
书里说“比如说,我们将10010H-1001FH这段长度为16字节的内存空间当作栈来使用,以栈的方式进行访问,这段空间就可以称为一个栈段,段地址为1000H,大小为16字节”
请问,为什么段地址是1000H,这个栈段的首地址应该为10010H,所以段地址应该是10010H啊,应为他毕竟也是个内存的地址,为什么会是1000H。这里的这个段地址是什么东西,不可能是ds吧,没任何关系啊,根本用不到ds嘛,就算是ds,也未必是1000H嘛。请大家解疑!
tsembrace
[第1楼]   [ 回复时间:2009-06-26 16:39 ]   [引用]   [回复]   [ top ] 
荣誉值:31
信誉值:3
注册日期:2009-06-15 19:20
你就没认真看书~
这里栈段地址可以是1000H,也可以是1001H;段地址不是内存单元地址,内存地址=段地址*16+偏移地址;诸如ds,cs,ss均为段寄存器,存储的就是段地址。。
其他不多说了,仔细看书可以解答你的这些疑问
lem2882
[第2楼]   [ 回复时间:2009-06-27 15:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-02-02 06:19
你说的那个段地址和我说的段地址不同。如果这个栈段的段地址为1000H,而大小为16字节,那么不管偏移地址是多少,这个栈的地址范围是多少呢?应该是10000H-1000FH,对不对,因为他只有16个字节。那为什么又说10010H-1001FH当作栈来使用,根本到不了那里阿,请说清楚写,谢谢
tsembrace
[第3楼]   [ 回复时间:2009-06-28 17:29 ]   [引用]   [回复]   [ top ] 
荣誉值:31
信誉值:3
注册日期:2009-06-15 19:20
如果取段地址为1000H,为什么会到不了10010H~1001FH呢。段地址为1000H的内存空间范围为10000H~1ffffH。针对本例为内存空间10010H~1001fH,需要将偏移地址起始位置设于10H,终止于1fH.即1000H×16+10H~1000H×16+1fH.
如果取段地址为1001H,则偏移地址始于00H,终于0fH。即1001H×16+00H~1001H×16+0fH.
要还不理解,我也没辙;或许你这是个很高深的问题,我还真没理解你的意思。
继续建议你认真看书。。。
wsay666
[第4楼]   [ 回复时间:2009-06-29 10:37 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:8
注册日期:2009-06-27 18:30
10010H~1001FH设为栈段,段地址为1000H,初始为空的话,sp=32即20h
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved