. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  dd dw dd 无法理解!  [待解决] 回复[ 6次 ]   点击[ 427次 ]  
qiyu2580
[帖 主]   [ 发表时间:2010-03-17 22:38 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-01-20 21:20
dd 占2个字。  00000000H
dw 占1个字。  0000H
db 占1个字节。00H

我用DEBUG调试,为什么都是占2个字!

assume cs:code
data segment
 dw 1
data ends
code segment
 mov ax,data
mov ax,4c00h
int 21h
code ends
end
qiyu2580
[第1楼]   [ 回复时间:2010-03-17 22:40 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-01-20 21:20
assume cs:code
data segment
 db 1      (dd 1)
data ends
code segment
 mov ax,data
mov ax,4c00h
int 21h
code ends
end
versaariel
[第2楼]   [ 回复时间:2010-03-18 09:30 ]   [引用]   [回复]   [ top ] 
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14
基础太差,代码怎么能写成这样,LZ没认真看书
assume cs:code,ds:data
data segment 
 db 99h 
 dw 1234h
 dd 0ABCD7890h
data ends 
code segment
start: 
 mov ax,data
mov ds,ax 
mov ax,4c00h 
int 21h 
code ends 
end start

DEBUG下查看
-d ds:0
0C0E:0000  99 34 12 90 78 CD AB 00-00 00 00 00 00 00 00 00
0C0E:0010  B8 0E 0C 8E D8 B8 00 4C-CD 21 02 FF 30 E8 54 FE
0C0E:0020  83 C4 06 FF 46 FC 8B 46-06 39 46 FC 72 DA 5E 8B
0C0E:0030  E5 5D C3 90 55 8B EC 56-C4 5E 04 26 80 7F 04 03
0C0E:0040  75 07 26 80 7F 0A 00 74-37 A1 58 27 39 06 36 22
0C0E:0050  72 14 BE 36 22 8B 1C FF-04 2B D8 D1 E3 D1 E3 8B
0C0E:0060  36 04 06 EB 10 90 BE 36-22 8B 1C FF 04 D1 E3 D1
0C0E:0070  E3 8B 36 92 12 8B 46 0C-8B 56 0E 89 00 89 50 02
qiyu2580
[第3楼]   [ 回复时间:2010-03-18 20:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-01-20 21:20
定义data为代码段,是不是默认情况下与程序段差10H?
所以
 db 99h  
 dw 1234h 
 dd 0ABCD7890h 
放进去后到OCOE:10处,下面的是data默认的数据00,(因为dd 是2个字节所以 0ABCD7890h超出所以用来4个字节存放)。

以上是我个人猜想,但感觉的不对!去调试一下看看!

关于上面写的程序,呵呵!data没加我也感到奇怪,可是书上没加我试了是,可以用就没加上去了
qiyu2580
[第4楼]   [ 回复时间:2010-03-18 20:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-01-20 21:20
调了一下还是有一些不明白!
db 123456789h
dw 123456789h
dd 123456789h
的数据是一样的!为什么
dd 0123456789h就提示错误!难道dd只能放8位数?
versaariel
[第5楼]   [ 回复时间:2010-03-19 09:05 ]   [引用]   [回复]   [ top ] 
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14
LZ你还是好好看书吧,什么都不懂呢-.-
okenny
[第6楼]   [ 回复时间:2010-04-08 22:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2009-12-18 17:03
调了一下还是有一些不明白!
db 123456789h
dw 123456789h
dd 123456789h
的数据是一样的!为什么
dd 0123456789h就提示错误!难道dd只能放8位数?
------------------
回复:db怎么会定义成123456789H的???  你明白db,dw是什么意思吗?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved