Женя 发表于 2012-7-6 09:24:51

一个困扰我很久的问题,求高手解答!!!

三种段:代码段、数据段、栈段。我能理解栈段,但是,我区分不了代码段和数据段。

对于代码段和数据段,到底有何区别???   

我要定义一个段,到底是把它定义成代码段,还是定义成数据段啊????

programmer 发表于 2012-7-6 18:56:23

本帖最后由 programmer 于 2012-7-6 18:58 编辑

assume segment

data segment

          dw 0,0,0,0,0,0,0,0

data ends

code segment

start:
      mov ax,data
      mov ds,ax

      ....
       mov ax,4c00h
       int 21h

code ends
end start

看过应该懂了吧

NeBen 发表于 2012-7-6 20:26:22

代码段就将它与代码寄存(CS=Code Segment)器相关联,数据段与数据寄存器(DS=Data Segment)相关联

NeBen 发表于 2012-7-6 20:28:12

本帖最后由 NeBen 于 2012-7-6 20:29 编辑

NeBen 发表于 2012-7-6 20:26 static/image/common/back.gif
代码段就将它与代码寄存(CS=Code Segment)器相关联,数据段与数据寄存器(DS=Data Segment)相关联
programmer的代码没体现这一点是错误的,代码都写错了
assume cs:code,ds:data(可以省略,但是代码段必需)

data segment

          dw 0,0,0,0,0,0,0,0

data ends

code segment

start:
      mov ax,data
      mov ds,ax

      ....
       mov ax,4c00h
       int 21h

code ends
end start
另外解释下,data code两个只是我们自己取的有含义的名字,其它的也可以,只要不是特别长(能那么长也是牛人)

页: [1]
查看完整版本: 一个困扰我很久的问题,求高手解答!!!