lengtian 发表于 2017-12-1 13:48:36

求解栈段空间定义的问题??

求解?栈定义空间中,2字节的栈和16字节的栈,为什么16字节的栈定义可以运行,而2字节的栈空间运行到push时就退出程序了?assume cs:code,ss:stack,ds:data          ;问题7.9 将datasg段中每个单词前4个字母改为大写字母。

data segment
        db '1. display      '
        db '2. brows      '
        db '3. replace      '
        db '4. modify       '
data ends

stack segment
        dw 0,0,0,0,0,0,0,0
stack ends

code segment

        start:                        mov ax,data
                                mov ds,ax
                                mov ax,stack
                                mov ss,ax
                                mov sp,16
                               
                                mov bx,0
                               mov cx,4
               s0:                push cx
                               mov cx,4
               s:                mov al,
                               and al,11011111b
                               mov ,al
                               inc bx
                               loop s
                              
                                add bx,16
                                pop cx
                                loop s0
                               
                                mov ax,4c00h
                                int 21h
                               
code ends

end startnt]

BngThea 发表于 2017-12-1 13:57:12

栈太小了中debug的时候可能出现问题,因为单步中断时会把flags,cs,ip压栈
而你的栈空间太小,可能会覆盖掉有用的数据

lengtian 发表于 2017-12-1 15:47:33

BngThea 发表于 2017-12-1 13:57
栈太小了中debug的时候可能出现问题,因为单步中断时会把flags,cs,ip压栈
而你的栈空间太小,可能会覆盖 ...

目前,想也可能是debug对栈出错了,我在debug中调试,结果不能执行的

兰陵月 发表于 2017-12-1 19:05:14

http://bbs.fishc.com/thread-100585-1-1.html

他的程序用debug调试的时候就出现了一些内容,这就是如果只设置一个字节的栈的话,debug调试就会错误。

lengtian 发表于 2017-12-2 06:12:32

兰陵月 发表于 2017-12-1 19:05
http://bbs.fishc.com/thread-100585-1-1.html

他的程序用debug调试的时候就出现了一些内容,这就是如果 ...

也就是说实际运行是正常的??

兰陵月 发表于 2017-12-2 10:56:55

lengtian 发表于 2017-12-2 06:12
也就是说实际运行是正常的??

很有可能~无法得知

lengtian 发表于 2017-12-2 18:19:31

兰陵月 发表于 2017-12-2 10:56
很有可能~无法得知

谢了
页: [1]
查看完整版本: 求解栈段空间定义的问题??