我想获得emu8086程序集中的数组长度。对于length或sizeof,我得到一个错误:
错误参数
有人能帮我找到数组的长度吗?
发布于 2020-12-16 14:14:19
A.可以计算数组结束($)和开始(offset array1)之间的差异。您需要在数组定义之后立即进行计算。如果没有,$就会在程序中指向更低的位置。
array1 db 65,66,67
array1len equ $ - offset array1
array2 db 'Any string is an array too!'
array2len equ $ - offset array2B。如果数组已知有一些特殊的终止值,那么搜索该值也是查找数组长度的一种方法。考虑一个ASCIIZ字符串,一个以零字节结尾的ASCII字符字符串:
string db 'Just a text.', 0下一个循环将在CX中生成长度(当然不包括零字节)。
mov si, offset string - 1
back:
inc si
cmp byte ptr [si], 0
jne back
lea cx, [si - offset string]https://stackoverflow.com/questions/65319331
复制相似问题