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

初始化DS 的作用是什么?

yaohuitc 发布于 2008-04-10 23:52, 1601 次点击
初始化DS 的作用是什么?  怎么用debug查询数据段内容在内存的储存?
3 回复
#2
apricot19842008-04-11 16:37
程序中如果用到了标号,初始化DS是为了让编译器清楚标号的段地址所存放的段寄存器。否则编译器我从知道。
在debug下可以通过程序,来查看数据所在的段地址,可以通过段地址来查看相应偏移地址的数据。
#3
yaohuitc2008-04-12 00:10
DATA   SEGMENT
     TABLE   DB   81,78,90,64,85,76,93,82,57,80
             DB   73,62,87,77,74,86,95,91,82,71
     NUM     DB   8
     MATH    DB   ?
     DATA    ENDS
     STACK1  SEGMENT  PARA  STACK
             DW         20H    DUP(0)
     STACK1  ENDS
     CODE    SEGMENT
             ASSUME  CS:CODE,DS:DATA,SS:STACK1
     START:  MOV   AX,DATA
             MOV   DS,AX
             MOV   BX,OFFSET  TABLE
             XOR   AH,AH
             MOV   AL,NUM
             DEC   AL
             ADD   BX,AX
             MOV   AL,[BX]
             MOV   MATH,AL
             MOV   AH,4CH
             INT   21H
     CODE   ENDS
            END   START
这是程序例子:
             MOV   AX,DATA
             MOV   DS,AX
      用debug反汇编看了DATA的段地址,  我再用  -d  DS:0  命令查,结果显示出来的段地址跟DATA的段地址不一样,这个是什么原因
#4
yaohuitc2008-04-12 21:43
回复 3# 的帖子
我明白了  
1