11256 发表于 2018-6-14 22:23:28

问题3.7

在debug里执行到mov sp,1这条命令时会自动退出,用什么方法才能继续执行下去了?

57158597@qq.com 发表于 2018-6-14 22:29:53

贴完整代码出来看看

11256 发表于 2018-6-14 22:35:12

57158597@qq.com 发表于 2018-6-14 22:29
贴完整代码出来看看

mov ax,1000
mov ss,ax
mov sp,1
push ax
push ba

11256 发表于 2018-6-14 22:36:46

57158597@qq.com 发表于 2018-6-14 22:29
贴完整代码出来看看

代码没问题照书上抄的

57158597@qq.com 发表于 2018-6-14 23:10:11

你贴的代码除了最后那句PUSH ba(push bx)有问题外其他都没有问题
考虑到你说的情况,那应该就是电脑的问题了,1000这个段可能已被占用
解决方法有两种:
1,进纯DOS模式下尝试,绝对没问题,就是麻烦
2,把栈空间改成SS=100,SP=10,这样也没问题了,100-199这个地址段是安全地址段放心用
代码如下:
mov ax,100
mov ss,ax
mov sp,10
push ax
push bx

11256 发表于 2018-6-15 22:06:33

57158597@qq.com 发表于 2018-6-14 23:10
你贴的代码除了最后那句PUSH ba(push bx)有问题外其他都没有问题
考虑到你说的情况,那应该就是电脑的问 ...

谢谢{:5_106:},可以了

强东我兄弟 发表于 2020-12-1 17:15:58

我有个疑问
mov ax,1000这不就把ax通用寄存器的值修改了吗
下面的push ax进栈的值不就与原始数据不同了吗
页: [1]
查看完整版本: 问题3.7