Clown10101010 发表于 2017-5-20 12:16:34

dw 问题。

新手上路,请多关照。


dw定义字型数据,但在代码中dw 为啥要定义6个字型数据,定义3个字型数据不就够了么?
自己改为3个0后,运行调试发现结果是错误的。为什么会这样呢?

求大神解答 。

assume cs:code
code segment
        dw 1234h,3456h,2345h
        dw0,0,0,0,0,0
start:
        mov ax,cs
        mov ss,ax
        mov sp,18
       
       
        mov bx,0
        mov cx,3
S:
        push cs:
        add bx,2
        loop S    ;进栈
       
        mov bx,0
        mov cx,3
S1:
        pop cs:
        add bx,2
        loop S1       ;出栈
       
        mov ax,4c00h
        int 21h
code ends
end start

人造人 发表于 2017-5-20 13:03:22

mov ax,cs
mov ss,ax
mov sp,18

此时ss:sp指向哪里?

Clown10101010 发表于 2017-5-20 19:16:06

人造人 发表于 2017-5-20 13:03
mov ax,cs
mov ss,ax
mov sp,18


栈空时SP不是指向下一个内存单元么?3个字型数据,6个0,应该是指向18吧?

人造人 发表于 2017-5-20 20:46:53

Clown10101010 发表于 2017-5-20 19:16
栈空时SP不是指向下一个内存单元么?3个字型数据,6个0,应该是指向18吧?

dw 1234h,3456h,2345h
dw0,0,0,0,0,0

ss:sp 指向最后那个0
页: [1]
查看完整版本: dw 问题。