永发信息网

汇编有数组吗 怎么用

答案:1  悬赏:60  手机版
解决时间 2021-11-09 04:30
汇编有数组吗 怎么用
最佳答案
汇编这样可以直接读写内存的程序也需要用到变量。但它不像其它高级语言那样把变量分成许多类型,它是按照变量的长度来区分的,所以定义(define)变量时就用5个不同的关键字:DB,DW,DD,DQ,DT(事实上常用的只有DB,DW)
DB(DEFINE BYTE)即定义的变量占一个字节的长度(也可以说把定义的变量值放入一个字节的内存空间)
如:
a DB 7h ;意思是将7h放入内存的某一个字节(空间)中,然后让变量a指向这个字节
也可以这样:
a DB 'h' ;虽然‘h’是个字符但存入内存却成了它对应的ASCII码48h

你也可以用DB来定义数组,如:
a DB 48h, 65h, 6Ch, 6Ch, 6Fh, 00h
b DB 'Hello', 0
这样定义出来的a和b中的元素是完全相同的。
可以作如下引用:
MOV AL, a[3]

也可以用指针和变址寄存器(BX, SI, DI, BP):
MOV SI, 3
MOV AL, a[SI]

如果你想定义一个具有一系列相同元素的数组可以用DUP关键字,如:
c DB 5 DUP(9)
与下面的效果相同:
c DB 9, 9, 9, 9, 9

d DB 5 DUP(1, 2)
相同于:
d DB 1, 2, 1, 2, 1, 2, 1, 2, 1, 2

如果你想把一个超过1字节的值用DB来定义是不可能实现的,编译器会报错,如:
a DB 1234H ;编译时是不能通过的,报错信息:Cannot convert word to byte!
另外DUP的第一个操作数就是例子中的5,不能超过1020,否则会报错:DUP expansion is over 1020 chars!

以上是DB的用法剩下的DW,DD,DQ,DT与之大至相同,除了它们不能定义字符数组(因为ASCII码值就是0..255,一个字节肯定能放下一个字符的ASCII码值)
DW(DEFINE WORD)定义一个字(两个字节)长度
DD(DEFINE DOUBLE WORD)定义双字(4个字节)长度
DQ(DEFINE QUARTET WORD)定义四字(8个字节)长度
DT(DEFINE TEN BYTE)定义十字节长度
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
袋子中装有3个白球,2个黑球,现在有放回的从
环氧富锌底漆和环氧红丹防锈漆的区别
沙湾县柳毛湾机动车专网登记服务站地址在什么
足底部裹上布打一成语
段正明是二论五绝还是三论五绝的水平
柳州市历史建筑柳州铁桥地址在什么地方,想过
下面条是先放鸡蛋还是先放面条
形容人们很高兴的词语
脉石英、石英岩、粉石英的区别,怎么通过外观
USB接口的摄像头转换成HDMI接口可以实现吗
青河县邮政局地址有知道的么?有点事想过去!
廊坊武警学院 边防管理 毕业去向?
为啥乡下野塘用饵料钓鲫鱼没有用
东北被日本人站了多久?都做了什么?
中国上太空的有哪些人?
推荐资讯
人类历史上,什么时候开始用指纹的
电脑如何结束任务
辽宁三两粮的年月是什么时候?
有哪些发布任务的平台呢?
正和盏家燕窝的口感怎么样? 谁吃过介绍下
口袋妖怪白金钢铁道馆的机关怎么破解
cs有多少含量
蒋介石的尸体如何保存
中俄关系2016论文1200字
甲保御的甲醛检测仪好在哪里?
时空猎人银汉版与腾讯版一样吗
ppt中多个动画怎样查看其中一个
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?