. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  指定栈空间  [待解决] 回复[ 3次 ]   点击[ 310次 ]  
aiker
[帖 主]   [ 发表时间:2009-06-01 11:40 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-27 12:04
比如一段内存单元为1000EH-100022H 那用指令怎么指定10010H-1001F为栈空间
晕 都问了好就几个栈的问题了 看来还是有晕
zhenglxd
[第1楼]   [ 回复时间:2009-06-01 13:42 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
这个问题 晕P啊。又是一典型不看书的
作者王爽大人不是说了吗
8086的cpu他不能自己限定栈的边界
所以你没法指定 一个栈的范围具体多少多少 只能人为的通过 sp 栈指针去控制
比如指定
10010H-1001FH 为栈
mov ax,1001H
mov ss,ax
mov sp,10H

那么 你在使用这个栈的时候 你push 8次 sp=0 他表示 同志们这个栈已经满了 不要 在往里面塞东西了
你在塞 他就会超界,超界后  sp=FFFe
同样的 当sp=0 你可以出栈8次 如果你出栈  超过8次 那么 就是下边界超界
但是 你无法让cpu在他超界的时候 去阻止他
关于 1001H是怎么来的 你拿10010H转化为10进制数字 然后除以16 在把结果转换为16进制看看

不是我故意耍你 这样你才有深刻的认识
aiker
[第2楼]   [ 回复时间:2009-06-02 10:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-27 12:04
如果不能指定栈的范围,那ss:sp一次只能指定存贮一个字的栈
那如果同时来2个字的数据 那不是就要分别用SS:SP指定???
aiker
[第3楼]   [ 回复时间:2009-06-02 10:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-27 12:04
比如书上的一段话:我们在基于8086CPU编程的时候,可以将一段内存当作栈使用
那在基于8086CPU编程的时候,又怎么用指令指定一段内存当作栈呢
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved