汇编语言中数据定义里,有多个操作数,且都为常量,变量名表示第一个操作数的地址吗

2025-03-06 22:15:58
推荐回答(2个)
回答1:

理解正确。

比如:

data segment
   a  db 0,1,2,3,4,5
data ends
mov al, a ; a就是指a[0],指得就是首地址。

回答2:

可以这样理解,这个变量相当于C语言里面的数组或者指针。比如:
MOV DPTR,#TAB
CLR A
MOVC A,@A+DPTR
MOV P0,A
SJMP $
TAB:
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6fh ;56789
这里的TAB就表示随后定义的10个数的3FH的地址。如果在C语言中对应的申明形式是:
unsigned char TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x6f};