定义双字的问题

neight 2003-10-17 03:31:15
t6 dd 'ab','cd'
为什么定义双字节,理论上应该可以放四个ASCII码,去最多只能放两位,否则就会
出现下列错误信息( error A2010: Syntax error)?????
以下为调试的内存信息.

ds:0000=0BD4:0000


0BD4:0000 62 61 00 00 64 63 00 00-FF 00 00 00 00 00 00 00
0BD4:0010 B8 D4 0B 8E D8 B4 4C CD-21 FE C4 5E FC 26 80 7F
0BD4:0020 04 00 75 E6 8B C3 8C C2-89 46 F8 89 56 FA C4 5E
0BD4:0030 F8 26 8A 47 0C 2A E4 40-50 8B C3 05 0C 00 52 50
0BD4:0040 E8 FD 42 83 C4 04 50 8D-86 74 FF 50 E8 53 6D 83
0BD4:0050 C4 06 FF 76 06 FF 76 04-8D 86 74 FF 50 E8 5A FD
0BD4:0060 8B E5 5D C3 55 8B EC 83-EC 08 56 A1 58 27 39 46
0BD4:0070 06 77 03 E9 8A 00 A1 36-22 2B 06 58 27 89 46 FE
...全文
192 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
neight 2003-10-23
  • 打赏
  • 举报
回复
是啊,但是用到DD后面加四个字节时就不行了~?
WYC2300 2003-10-20
  • 打赏
  • 举报
回复
数在寄存器里是一补码的形式存放的啊`
aabiao 2003-10-20
  • 打赏
  • 举报
回复
楼上说的没错,太死心眼了
定义字符串就是用DB的,谁告诉你是用DD的?
用DW或DD即使不说错,也是位置错位的,这样逻辑问题更难发现。
HappyTown 2003-10-20
  • 打赏
  • 举报
回复
neight(巴哈):
'ab'用DB的话在内存是以ab存放的.
'ab'如果用DW的话是以ba来存放的.

是这样的吗?hehe....
neight 2003-10-20
  • 打赏
  • 举报
回复
'ab'用DB的话在内存是以ab存放的.
'ab'如果用DW的话是以ba来存放的.
而当串为'abcd'时编译就会出错.
neight 2003-10-20
  • 打赏
  • 举报
回复
有问题想不明白当然得搞清楚的啊.
要不长你的脑袋来干嘛?~
总是知一点不知一点.
WYC2300 2003-10-20
  • 打赏
  • 举报
回复
楼主你说的理论上可以放四个ASCLL码是怎么说的呢``/`

我是觉的要放两个哦

QQ:254734866
ahjoe 2003-10-19
  • 打赏
  • 举报
回复
不要哪么死心,用DB不好吗?
你这么死心眼儿,是写不好程序的。
neight 2003-10-19
  • 打赏
  • 举报
回复
data segment
t6 dd 'abc' ;这里如果只是两位ASCII的话,compilie就能通过.例: t dd 'ab'
data ends
c segment
assume ds:data ,cs:c
start : mov ax,data
mov ds,ax
mov ah,4ch
int 21h
c ends
end start
用的是masm5.0和windows 2000 server
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [test.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
test.asm(2): error A2010: Syntax error

50096 + 449888 Bytes symbol space free

0 Warning Errors
1 Severe Errors
这就是出错信息.麻烦大家了..
W32API 2003-10-17
  • 打赏
  • 举报
回复
晕,在汇编下一般用 DB、DW、DD 等表示 字节、字、双字
补码表示负数的方法是对应正数值取反加一((~N)+ 1)

提供编译器、调试信息以及你的代码信息。
zgrpmc 2003-10-17
  • 打赏
  • 举报
回复
二进制位数为n的数a的补码是2^n-|a|(2的n次方减a的绝对值);(当然,只有负数才有补码);
双字节和双字有区别吧,双字是不是dw?,双字节是db吧?
neight 2003-10-17
  • 打赏
  • 举报
回复
还有到底-1转换成补码是对于八位的是多少.还有三十二位的呢?
为什么会等于全为1呢?~

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧