首页
社区
课程
招聘
masm5.0编译后,用debug 载入.exe文件后出现的疑惑[求助]
发表于: 2006-11-30 10:03 4993

masm5.0编译后,用debug 载入.exe文件后出现的疑惑[求助]

2006-11-30 10:03
4993
把这个下面这个m.asm编译成m.exe后,
assume cs:code,ss:stack,ds:data
stack segment
       dw 6,6,6,6,6,6,6,6
stack ends
data segment
db '1. aaaa      '
db '2. dddd        '
db '3. cccc      '
db '4. dddd       '
data ends
code segment
start:  mov ax,stack
        mov ss,ax
        mov sp,16
        mov ax,data
        mov ds,ax
code ends
end start

用debug m.exe后,-r 如图1

再用d 0b90:0 看内存如图2

我还没用t命令执行呢,
stack segment
dw 6,6,6,6,6,6,6,6
stack ends
data segment
db '1. aaaa      '
db '2. dddd        '
db '3. cccc      '
db '4. dddd       '
data ends
上面的就已经在内存里了,谁可以解释下?[

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
你的图看不了

对段寄存器的操作属于特权级指令吧?

我建议你练习的时候还是换一个代码
2006-11-30 13:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 panwill 发布
把这个下面这个m.asm编译成m.exe后,
assume cs:code,ss:stack,ds:data
stack segment
dw 6,6,6,6,6,6,6,6
stack ends
........


呵呵,-t执行的是从start标号开始,start以上定义数据db之类当然就在内存中的代码段前存放了.
2006-11-30 14:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
用debug 载入程序后
ds=0b80
但用r命令查看时
却发现 ds=0b90.....
谁解释下?
2006-12-1 23:04
0
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
因为程序加载到内存中的前面256个字节存放的是PSP,DOS用来和程序进行通信的从 256个字节后的空间才是程序的 所以要加上10H
2006-12-3 00:47
0
游客
登录 | 注册 方可回帖
返回
//