想把SI指向一个多字节数据的最高位地址,怎么写?

来源:百度知道 编辑:UC知道 时间:2024/05/19 00:33:20
数据段定义一个数据
DATA DD 12345678H
代码段想把SI指向12H,这么写好像不对啊,
LEA SI,DATA+SIZE DATA-1
应该怎么写呢?
不能写LEA SI,DATA+3,因为DATA占的字节数不知道的。。
那个不能用3啊,因为DATA我是举了个例子是四个字节的,万一DATA字节数不是4呢,我想要一种普遍的方法。。就是不知道DATA占几个字节的前提下把SI指向高位,谢谢大家了。
________
可能的,我想出来了,MOV BX,SIZE DATA ; DEC BX ;LEA SI,DATA+[BX]就行啦

LEA SI,DATA
ADD SI,3
==================
那当然是不可能的啦;你连数据长度都不知道,你能确定它的高位??
根本不可能

首先,你那种写法是对于DATA是数组名时才实用。汇编语言储存变量值的规则是高字节进偏移地址相对较高的内存单元。若以0000H为起始地址,则12H进的是0003H,78H进的是0000H。试试这个:LEA BX,DATA
MOV SI,BX+3