|
主题 : : dd dw dd 无法理解! [待解决] |
回复[ 6次 ]
点击[ 427次 ] | |
|
|
|
|
[帖 主]
[ 发表时间: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 | | |
|
|
|
|
[第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 | | |
|
|
|
|
[第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 | | |
|
|
|
|
[第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没加我也感到奇怪,可是书上没加我试了是,可以用就没加上去了 | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-03-18 20:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-20 21:20 |
调了一下还是有一些不明白!
db 123456789h
dw 123456789h
dd 123456789h
的数据是一样的!为什么
dd 0123456789h就提示错误!难道dd只能放8位数? | | |
|
|
|
|
[第5楼]
[ 回复时间:2010-03-19 09:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14 |
|
|
|
|
|
[第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是什么意思吗? | | |