当前位置: 代码迷 >> 汇编语言 >> 请问一个如何想都想不通的地址偏移有关问题
  详细解决方案

请问一个如何想都想不通的地址偏移有关问题

热度:5304   发布时间:2013-02-26 00:00:00.0
请教一个怎么想都想不通的地址偏移问题
//myfile.asm//
照抄书上的代码

;THE   FORM   OF   ANASSEMBLY   LANGUAGE   PROGRAM
;NOTE:   USAGE   SIMPLIED   SEAGMENT   DEFINITION
                .MODEL   SMALL
                .STACK   64
                .DATA
DATA1       DB             52H
DATA2       DB             29H
SUM           DB             ?
                .CODE
MAIN         PROC         FAR                           ;this   is   the   program   entry   point
                MOV           AX,   @DATA               ;load   the   data   seagmentaddress
                MOV           DS,   AX                     ;assign   value   to   DS
                MOV           AL,   DATA1               ;get   the   first   operand
                MOV           BL,   DATA2               ;get   the   second   operand
                ADD           AL,   BL                     ;add   the   operands
                MOV           SUM,   AL                   ;store   the   result   in   location   SUM
                MOV           AH,   4CH                   ;set   up   to   return   to   DOS
                INT           21H                           ;
MAIN         ENDP
                END           MAIN                         ;this   is   the   program   exit   point

在msdos7.1系统下,编译器是masm510   处理器是amd   athlonX64   X2   mobile
(似乎不可能与处理器有关,因为基本的处理器都兼容8086/88指令集

masm   myfile.asm   通过     没有任何警告和错误

link   myfile.obj     通过

运行debug   myfile.exe

-u   cs:0   19   得到代码段起始地址为1429H,数据段起始地址为1430H,

(请问这里正常不?)

-d   1430:0   f
查看一下代码段前16字节的内容,这里我就百思不解为什么1430:0000不等于52H,1430:0001不等于29H,似乎52H偏移到1430:0006       29H偏移到1430:0007,因为我运行
-g       之后

1430:0008的内容为7BH

哪位知道的给我说一下啊,谢谢,可以在这里回帖也行,给发消息也行

13816724892


------解决方案--------------------------------------------------------
  相关解决方案