求教汇编高手,汇编中变量的定义,以前都是用equ直接分配地址给变量,看网上说这样不好,试了一下用 db,dw 定义,
可为什么不能通过,data segment就有报错,编译软件使用的是keil uv2,是编译软件的问题吗?
data segment
buffer1 db 23 dup(?)
buffeer db 0ah,0dh,'$'
buffer2 db 30 dup(?)
buffer3 db 8 dup('0')
count db 5
handle dw ?
del db 8 dup('0')
x db ?
data ends
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
只有 DW DB DD 这些语句才是带地址分配的语句,本身的意义只是给指定类型和长度的数据保留地址空间;
实际分配地址是在链接时完成的;
data segment 只能定义数据,不能定义常数,也就是说你只能用问号保留地址空间,不能指定其内容;
要定义有确定内容的数据,应该在 code segment 内定义
谢谢解答,但还是不明白,上面的程序段编译器报的是语法错误,DATA SEGMENT语法存在问题吗?可从网上下的实例都是这样写的。而buffer1 db 1 也是报语法错误,如果改成buffer1: db 1就可以通过,怎么跟网上的实例不一样呢?
你说的这个问题是由于编译器不同造成的,不同软件商提供的编译器细节上有区别很正常;
甚至同一厂家为了和其他厂家的兼容性,会在新版本中修改旧版中的既定细节,引起代码重用出错的问题。
了解了,谢谢解答!
一周热门 更多>