冷峻花开 发表于 2013-5-22 01:16:20

未解的疑惑

本帖最后由 s0512 于 2013-5-22 12:22 编辑

代码如下:

assume cs:code,ds:data
data segment
db 'BaSic'
db 'INfoRMatION'
data ends
code segment
xf: mov ax,data
mov ds,ax      ; 程序执行到这里就已经为定义的数据开辟好空间(应该是加载入内存就有了数据)后面只要指向就好!!!
mov bx,0
mov cx,5
s:mov al,ds:
and al,11011111B         ;转为大写
mov ds:,al
inc bx
loop s

mov bx,5
mov cx,11
s1: mov al,ds:
or al,00100000b                   ;转为小写
mov ds:,al
inc bx
loop s1

mov ax,4c00H
int 21h
code ends
end xf


进入DEBUG模式:
R命令查看寄存器的信息,
D CS:0 查看内存的值
为什么我在DS中定义的数据会在CS中查看到(还没有执行或单步执行)???
虽然段是自己定义的但还是不能给自己一个合理的解释.......

熊文杰 发表于 2013-5-22 01:16:21

楼主,我把你的代码copy了一下,跑了一下,我这边没有出现你说的情况呢,截图如下:

冷峻花开 发表于 2013-5-22 12:11:16

好像自己在调试一遍疑惑就没有了是!还是THANKS

冷峻花开 发表于 2013-5-22 12:16:14

熊文杰 发表于 2013-5-22 01:16 static/image/common/back.gif
楼主,我把你的代码copy了一下,跑了一下,我这边没有出现你说的情况呢,截图如下:

定义的数据在接着PSP后面的开始处!!!!
页: [1]
查看完整版本: 未解的疑惑