鱼C论坛

 找回密码
 立即注册
查看: 1595|回复: 3

[技术交流] 用debug调试问题7.6有个问题不解

[复制链接]
发表于 2014-5-20 17:38:25 | 显示全部楼层 |阅读模式

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

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

x
assume cs:codesg,ds:datasg
datasg segment
db '1.  file  '
db '2.  enti   '
db '3. search '
db '4.  view   '
db '5.  options'
db '6.  help'
datasg ends
codesg segment
start:mov ax,datasg
      mov ds,ax
   mov bx,0
   
   mov cx,6
   s:mov al,[bx+3]
     and al,11011111b
  mov [bx+3],al
  add bx,16
  loop s
mov ax,4c00h
int 21h
codesg ends
end start

这到题目是这样将DATASG代码中第一个字母变成大写,于是我用DEBIUG加载了这个程序进行调试执行后我发现我标红色的那个代码时是大写的DF我很是奇怪为什么是DF然后我有将第五个数字0改为一以为应该会变成小写我才对结果还是大写而且原本的DF也改变了
我有几个疑问为什么11011111在DEBUG执行时会是DF而且我将第五个数字改为以后发现DF也改变了,我要怎么才能在DEBUG中查到代码段第一个字母是否已经改变

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

使用道具 举报

发表于 2014-5-20 19:32:31 | 显示全部楼层
楼主请把言语写通常啊。 话都没说全啊。 在debug看是否改变就查看对应内存段 右边部分。那是ASCII翻译过去的。你看变成大写就对了。
JU3J`6QTARU6UF[U7B(OWVK.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-20 22:24:10 | 显示全部楼层

不明白你的意思  我想问问这B800:0是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-20 22:29:57 | 显示全部楼层
b800:0 是显存。就是你往这个内存段写入代码的话就显示在屏幕上。物理地址后面是代码。
代码后面是相应代码代表的字符。第一行2D 07 64 07  。。。 64 代表的就是小写的d 。后面写着看到没?我截图你别说你不会看。。
你要看自己代码那个首字母变没变就找到那个字母所在的地址。用d命令查看一下。后面是大写就是大写。是小写就是小写。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 00:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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