汇编程序 偏移地址问题 头疼啊
本帖最后由 无名侠 于 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,
好乱!!!!!!!!!!!!!! OFFSET 是取出标号的偏移地址吧,AX=2说明DATA1的偏移地址是2啊。
页:
[1]