鱼C论坛

 找回密码
 立即注册
查看: 2249|回复: 7

[已解决]mov传送的数据莫名其妙的被改变了,新手求助

[复制链接]
发表于 2018-11-22 12:10:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
源代码如下:

assume cs:code,ds:data
data segment

        db 'i love lkp'

data ends

code segment
start:        mov ax,data
                mov ds,ax
       
                mov ax,0b800h
                mov es,ax
       
                mov di,0h
                mov si,70h
       
                mov cx,10h
s:                  mov dl,ds:[di]
                mov es:[si],dl                                ;执行这里的时候,传送进去的值不是dl 的值而是20h
                mov byte ptr es:[si+1],0ah                ;这里传送进去的也是07h 不是0ah
       
                add si,2h
                inc di
                loop s
       
                mov ax,4c00h
                int 21h

code ends

end start

求各位大佬帮忙看看
最佳答案
2018-11-23 11:10:01
测试了下,不单步直接运行的话是能正常显示的,如下图
如果debug单步执行就看不到。我想是这样的,字符本来是刚写进去了的,但立刻被debug单步T的输出滚屏覆盖了显示缓冲区,就看不到了。

DEBUG情况

DEBUG情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-22 12:57:52 | 显示全部楼层
等语句执行完了后看一下es指向的内存看看里面是 0x69 还是 0x20。
我记得后面显示的值是当前这块地址的值,而且你还没 t,也就是说这条 mov 指令还没执行,那这块内存也只能显示 0x20,而不是你要放进去的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-22 15:39:31 | 显示全部楼层
丶忘却的年少o 发表于 2018-11-22 12:57
等语句执行完了后看一下es指向的内存看看里面是 0x69 还是 0x20。
我记得后面显示的值是当前这块地址的值 ...

额,我看了下内存都是20,执行完之后也是,就是dl的值好像传到内存里就都变20了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-22 18:53:46 | 显示全部楼层
lkp1115 发表于 2018-11-22 15:39
额,我看了下内存都是20,执行完之后也是,就是dl的值好像传到内存里就都变20了。

直接运行起来能显示出字符嘛?不单步调试。
记得单步会影响内存中的值的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-22 19:09:49 | 显示全部楼层
丶忘却的年少o 发表于 2018-11-22 18:53
直接运行起来能显示出字符嘛?不单步调试。
记得单步会影响内存中的值的

额,好像都没显示。好奇怪!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-23 11:10:01 | 显示全部楼层    本楼为最佳答案   
测试了下,不单步直接运行的话是能正常显示的,如下图
如果debug单步执行就看不到。我想是这样的,字符本来是刚写进去了的,但立刻被debug单步T的输出滚屏覆盖了显示缓冲区,就看不到了。
无标题.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-24 09:18:00 | 显示全部楼层
superbe 发表于 2018-11-23 11:10
测试了下,不单步直接运行的话是能正常显示的,如下图
如果debug单步执行就看不到。我想是这样的,字符本 ...

清屏后就可以显示了,然后用dir命令填满屏幕,再执行看到了显示了一瞬间然后马上消失,我想应该就是您说的那样,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-24 09:18:33 | 显示全部楼层
也谢谢2楼的回答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 09:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表