TomodaMaki 发表于 2013-3-8 00:27:12

王爽书中第六章的一个问题

assume        cs:code,ds:data,ss:stack

data        segment
        dw        0123h,0456h,0789h,0abch,0defh,0cbah,0987h
data        ends

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

code        segment
       
        start:        mov        ax,stack
                        mov        ss,ax
                        mov        sp,20h
                       
                        mov        ax,data
                        mov        ds,ax
                        mov        bx,0
                       
                        .........
                       
                        mov        ax,4c00h
                        int        21h
code        ends
end        start
以上这段代码是王爽汇编中的示例程序6.4.书的第130页。我的问题是:对于代码段,仅仅只有assume cs:code但是对于数据段和堆栈段,则不仅有assume ds:data,ss:stack.并且还有
mov ax,stack
mov ss,ax


mov ax,data
mov ds,ax
告诉计算机堆栈段和数据段的段地址。但是代码段却没有相关的。这是为什么?

小小小小鱼 发表于 2013-3-8 01:11:51

看了半天 总算明白你问的什么了~这语言表达能力~~因为 start 这个标号~程序开始CS:IP 会自动跳转到标号位子~

TomodaMaki 发表于 2013-3-8 01:23:24

非常感谢您的回答,我下次注意表达的更清楚些。这样看来,感觉assume      cs:code,ds:data,ss:stack这句代码好像没起什么作用.

小小小小鱼 发表于 2013-3-8 02:05:11

当然有用~你可以把它去掉看看 就会明白了~呵呵 我都说了 你记忆不深刻

feizixiao 发表于 2013-3-26 10:07:25

start 不就是代码段的开始处么、明明指定了的
页: [1]
查看完整版本: 王爽书中第六章的一个问题