注册 登录
编程论坛 汇编论坛

汇编里的dw怎么理解??????????????

bzy601638015 发布于 2011-12-29 14:54, 1307 次点击
程序代码:
assume cs:code,ds:data,ss:stack

    data segment
       dw 0123h,0456h,0789h,0abch,0defh,0dedh,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,16
      
        mov ax,data
        mov ds,ax
      
        push ds:[0]
        push ds:[2]
        pop ds:[2]
        pop ds:[0]
      
        mov ax,4c00h
        int 21h
    code ends
    end start
   
dw 这个怎么理解??在DOS怎么看呢??谢谢了
7 回复
#2
zaixuexi2012-01-01 11:36
只是一段地址空间
如果算上mov ss, stack mov sp, xxx,可以理解为你接管了系统默认的堆栈指针
#3
bzy6016380152012-01-01 17:43
这个我能不能控制它的位置,它这个查找就在-d stack:0 f 可以查找到,我不想它放在这个位置,行不行??
#4
zaixuexi2012-01-01 17:57
不知道你想表达什么
#5
潘增飞2012-01-01 19:17
堆栈段定义了8个字的内存空间,而且初始化为0了
#6
bzy6016380152012-01-01 21:33
回复 3楼 bzy601638015
你是说是系统默认的吗??我想把那8个0,存放到自己想放的物理地址里!!
#7
zjsxwc2012-01-01 22:39
以下是引用bzy601638015在2012-1-1 21:33:21的发言:

你是说是系统默认的吗??我想把那8个0,存放到自己想放的物理地址里!!


放到你想放的物理地址里,就用  [ 你想放的物理地址 ] 的格式寻址来操作吧
估计dos可行,但是Windows和linux这样是绝对不允许的
#8
六人行2012-01-08 15:49
dw是定义字型数据。dw即“define word”。
定义八个字型数据内存空间,初始化为0,存放是由编译器干的。
1