| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3253 人关注过本帖
标题:汇编中db与dw的区别(2) 。。。
只看楼主 加入收藏
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
结帖率:97.3%
收藏
已结贴  问题点数:10 回复次数:24 
汇编中db与dw的区别(2) 。。。
程序代码:
assume cs:code,ds:data

data segment

    db    '中国'       ;这里为什么db是对的,dw是错的。 一个汉字不是占两个字节么...

    dw    0
                ;程序实现把中国!放入dw定义的内存单元中
data ends

code segment

start:
    mov    ax, data
    mov    ds, ax
    mov    bx, 16

    mov    ax, [0]
    mov    [bx], ax    ;ds:10h里面什么也没有,不知道为什么


    mov    ax, 4c00h
    int    21h

code ends

end start
2012-07-11 20:08
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
首先 你没往那里面放 自然 什么都没有是可能的

一般运行16位程序都是在虚拟机里运行的 比较干净 什么都没有是正常的
2012-07-11 20:31
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
回复 2楼 zklhp
如果把 '中国'换成 'china'则ds:0是有数据显示的,难道是中文支持的问题?

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-07-11 20:34
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
为啥用db呢 这里是定义字符串 规定用db 对于汉字 会自动转成相应的数据放进去的 不用你操心 当然能不能显示是另外一回事了
2012-07-11 20:34
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用lonmaor在2012-7-11 20:34:04的发言:

如果把 '中国'换成 'china'则ds:0是有数据显示的,难道是中文支持的问题?

写英语 ds:10h 里面有东西了?
2012-07-11 20:35
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我上面说的是ds:10h没东西
2012-07-11 20:36
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
回复 6楼 zklhp
用emu8086调试的,如果是db '中国'

图片附件: 游客没有浏览图片的权限,请 登录注册

如果是db 'china'

图片附件: 游客没有浏览图片的权限,请 登录注册


emu8086默认exe模板的data segment定义
程序代码:
data segment
    ; add your data here!
    db    '中国'       ;这里为什么db是对的,dw是错的。 一个汉字不是占两个字节么...

    dw    0

    pkey db "press any key...$"
ends
下面press any key...就忽略了吧

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-07-11 20:43
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
为什么不能用dw 呢...    汇编里面有字是不是和汉字没关系...

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-07-11 20:51
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
对啊 说明中国俩字没转 看来连中文的定义都不行 更不用说显示了

结论 中文基本不支持
2012-07-11 20:54
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用admin_xyz在2012-7-11 20:51:04的发言:

为什么不能用dw 呢...    汇编里面有字是不是和汉字没关系...
有没有关系我也不知道

定义字符串 就是用db 编译器自动转成

db 12,13,14

这样的形式

对于中文 一样 只不过是根据编码转换成相应的数罢了

以前我以为这个能定义中文 也就是能把中文转成数 现在看上面的测试 是不能的

为啥中文不能这么定义呢 我觉得原因有以下几个

和英文的字符串对应
实现容易

2012-07-11 20:57
快速回复:汇编中db与dw的区别(2) 。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.097164 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved