Arrays 在8086汇编中查找数组长度

Arrays 在8086汇编中查找数组长度,arrays,assembly,x86-16,Arrays,Assembly,X86 16,在8086汇编语言中,有没有一种简单的方法来查找数组长度,或者这是应该提前知道的 如果数组是在本地定义的,则可以使用LENGTHOF(元素数)或SIZEOF(字节数): 要么它是提前知道的,要么存在某种“终止符”,比如C的空终止字符串。在机器代码级别并没有关于数组长度的内置概念,尽管个别汇编语言可以自由定义这样的概念。 str db 'example string',0dh,0ah,00h ; ... lea ebx,str mov

在8086汇编语言中,有没有一种简单的方法来查找数组长度,或者这是应该提前知道的

如果数组是在本地定义的,则可以使用LENGTHOF(元素数)或SIZEOF(字节数):


要么它是提前知道的,要么存在某种“终止符”,比如C的空终止字符串。在机器代码级别并没有关于数组长度的内置概念,尽管个别汇编语言可以自由定义这样的概念。
str     db      'example string',0dh,0ah,00h
; ...
        lea     ebx,str
        mov     ecx,sizeof str
.data
  arr dw 3h,1h,2h 
  count = ($-arr)
.code
mov ax,count      ;will contain the length , here is 6