鱼C论坛

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

第七章 更灵活定位内存地址02 的实验问题

[复制链接]
发表于 2012-2-21 00:14:35 | 显示全部楼层 |阅读模式
1鱼币
如题所述,我照着小甲鱼的视频写的一个大小写转换的问题,但是‘lOvEYoUSo’中的l不能正常转换,会出现乱码。各位大神看一下,代码如下:
ASSUME CS:CODE,DS:DATASG
DATASG SEGMENT
DB 'BEaUtIFuL'
DB 'lOvEYoUSo'
DATASG ENDS
CODE SEGMENT 
START : 
  MOV AX,DATASG
  MOV DS,AX
  MOV BX,0
  MOV CX,9
  S: MOV AL,[BX]
  AND AL, 11011111B
  MOV [BX],AL 
  MOV AL,[BX+9]
  OR AL, 00100000B
  MOV [BX+9],AL
  INC BX
  LOOP S
  
CODE ENDS
END START
  

最佳答案

查看完整内容

你开始的 data segment 定义的数据段 没变 你mov ax,data mov ds,ax 这还是定位在原来的位置上!~ 所以你E修改的都是白改的 而且你在winxp 虚拟的debug下 修改完数据 关闭这个debug 所有你修改的都不存在了!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-21 00:14:36 | 显示全部楼层

你开始的 data segment 定义的数据段 没变   你mov ax,data  mov ds,ax  这还是定位在原来的位置上!~ 所以你E修改的都是白改的  而且你在winxp 虚拟的debug下 修改完数据 关闭这个debug 所有你修改的都不存在了!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-21 00:23:37 | 显示全部楼层
代码没有问题,本机测试正常,大小写转换正常,是你编译器和电脑的问题!仔细看看!晚安
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-21 11:07:17 | 显示全部楼层
现在测试确实可以了,但还有一个问题想要问一下大家:在debug下用E命令修改‘lOvEYoUSo’中‘l’所对应单元的内容,再运行程序会发现‘l’内的内容不会是‘L’了,会是其他的字符或显示不出来。这是为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-21 14:49:17 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-2-21 14:54 编辑

你E命令修改了内存单元的值 那应改是修改了对应的AScII 码 当然会修改显示出的内容!~  你要修改成31 那就是显示1   改成32 就显示2    改成49  就是大写的 I    69 是小写的i     去看看ASCII码表 十六进制与对应字符 就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-21 15:04:59 | 显示全部楼层
莫名其妙 发表于 2012-2-21 14:49
你E命令修改了内存单元的值 那应改是修改了对应的AScII 码 当然会修改显示出的内容!~  你要修改成31 那就是 ...

你说的是对的,但问题是,我修改完后,再次运行这个程序,那么程序就会再次将‘lOvEYoUSo’放入同样的内存中,覆盖掉原来的数据,那么,刚才的修改就是无效的了,所以,不清楚为什么会这样。。。。欢迎讨论!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-21 15:20:29 | 显示全部楼层
你再次运行程序应为你上面设置的ds  还是原来那段 所以就会被覆盖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-21 17:45:18 | 显示全部楼层
你还没懂我的意思,算了吧,总之还是谢谢你的帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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