为什么debug内存里是乱码
STACKSG SEGMENT STACK 'S'DW 64 DUP('ST')
STACKSG ENDS
DATASEGMENT
daDW 3,2,6,9,4,8,7,1,5;数组
CT EQU ($-da)/2 ;元素个数
DATAENDS
CODESEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACKSG
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
mov di,ct-1 ;外循坏次数
l1: mov cx,di;内循坏次数
mov bx,0 ;用于数组寻数
l2: mov ax,da ;两个内存数无法直接比较
cmp ax,da ;比较
jle cont ;小于等于则转到cont继续循环
xchg ax,da ;否则交换两数
mov da,ax
cont: add bx,2 ;改变指针
loop l2
dec di;外循坏改变条件
jnz l1;不为0则继续循环
MOVAX,4C00H
INT21H
MAINENDP
CODEENDS
ENDMAIN
masm、link时都正确 ,也生产exe文件了
也运行了 可是对应的内存为什么还是乱码??
应该为 00 01000200 03.........00 09才对。 补充:这是计算机组成原理作业用汇编语言 编写冒泡排序 我的也是乱码,木有解决……求高人指导吧! jle应该没错吧 我用的是jb,还有貌似用了-g指令后会系统会换过一个内存空间,再使用-d就是查看别的程序的内存空间了。可以使用-U指令查看你的DW数据块放在哪里了,也就是第一句汇编的 MOV AX,XXXX
比如-g
然后-u 看地址
然后-d XXXX:0000 本帖最后由 镕羽 于 2012-9-7 12:14 编辑
yang19910223 发表于 2012-9-6 21:05 static/image/common/back.gif
jle应该没错吧 我用的是jb,还有貌似用了-g指令后会系统会换过一个内存空间,再使用-d就是查看别的程序的内 ...
谢谢,找到数据段的内存了可是发现运行了maopao.exe后,内存里的数据并没有排序,还是无序的,我觉得代码逻辑并没有错,可以帮忙看看吗?图片见楼下
还是乱序的 镕羽 发表于 2012-9-7 12:14 static/image/common/back.gif
还是乱序的
你没觉得你的这个“乱码”跟你定义的 WORD型数组的 是一样的吗?
其实 执行 debug maopao.exe 这个命令后 maopao.exe其实还没有执行呢。
要执行后才是排好序的啊。没执行的呢,当然就是你原来定义的数组顺序了。
debug maopao.exe
g
d XXXX:0000
先用g执行即可然后再查看。 X1n4n 发表于 2012-9-7 16:24 static/image/common/back.gif
你没觉得你的这个“乱码”跟你定义的 WORD型数组的 是一样的吗?
其实 执行 debug maopao.exe 这个命令后 ...
谢谢,可以了~~
但是我在debug之前,先运行了maopao.exe了,如这样:
D:\masm\maopao.exe
D:\masm\debug maopao.exe
怎么回事啊,谢谢指教吾辈小白~~ yang19910223 发表于 2012-9-6 21:05 static/image/common/back.gif
jle应该没错吧 我用的是jb,还有貌似用了-g指令后会系统会换过一个内存空间,再使用-d就是查看别的程序的内 ...
话说,你的头像是 小奴良吧~~ D:\masm\maopao.exe 是你运行了一次,创建了一个进程然后程序排好序了,进程结束了。
对于 D:\masm\debug maopao.exe
debug是个调试器,它会启动程序,创建进程,然后挂起主线程。等待用户操作。此时可以执行单步 t 或者其它命令来调试程序。总之你要看内存必须要在这个进程的地址空间里看。捏那个第一句执行了一个进程这个进程debug感知不到与其无关。
BTW:不知小奴良为何物。。。=_= X1n4n 发表于 2012-9-7 18:00 static/image/common/back.gif
D:\masm\maopao.exe 是你运行了一次,创建了一个进程然后程序排好序了,进程结束了。
对于 D:\masm\debu ...
谢谢高手赐教~
小奴良是回复之前楼上的同学的一个动漫人物~ 镕羽 发表于 2012-9-7 17:34 static/image/common/back.gif
话说,你的头像是 小奴良吧~~
大奴良不够萌 就用小奴良了
页:
[1]