//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
------解决方案--------------------------------------------------------