ASDF12312QWE 发表于 2014-1-22 09:58:43

汇编程序 偏移地址问题 头疼啊

本帖最后由 无名侠 于 2014-1-22 16:48 编辑

这是微机原理与接口技术,马维华,第一版,书上P137的例题

STACKSEGSEGMENT STACK
          DB 256 DUP(?)
STACKSEGENDS
DATA1SEGMENT WORD PUBLIC ‘CONST’
CONS1DW 100
DATA1ENDS
DATA2SEGMENT WORD PUBLIC ‘VARS’
VAR1   DW ?
DATA2ENDS
DATAGROUPGROUP DATA1 ,DATA2            ;组合两个数据段
CODESEGSEGMENT PARA PUBLIC ‘CODE’    ;定义代码段
ASSUMECS:CODESEG,DS:DATAGROUP,SS:STACKSEG
START:MOV AX,DATAGROUP
      MOV DS,AX                DS赋初值对该组寻址
      MOV AX,CONS1             ;AX=100
      MOV VAR1,AX             ;VAR=100
      MOV AX,OFFSET VAR1       ;AX=2
      MOV AX,OFFSET DATA1      ;AX=2(已分配2个字节内存单元)
      MOV AX,OFFSET DATA2      ;AX=4(已分配4个字节内存单元)
      MOV AX,4C00H             ;DOS功能调用,可正常返回到操作系统
      INT 21H
CODESEG ENDS
      ENDSTART               ;程序结束
你看那条MOV AX,OFFSET DATA1      ;AX=2(已分配2个字节内存单元),为什么AX=2?
   我认为DATA1的偏移地址应该是0,

无名侠 发表于 2014-1-22 16:47:52

好乱!!!!!!!!!!!!!!

无名侠 发表于 2014-1-22 16:49:19

OFFSET 是取出标号的偏移地址吧,AX=2说明DATA1的偏移地址是2啊。
页: [1]
查看完整版本: 汇编程序 偏移地址问题 头疼啊