[英]How can we obtain array length in emu8086 assembly?
我想获得emu8086的汇编数组长度。 使用length
或sizeof
我得到一个错误:
错误错误参数
谁能帮我用其他方法来查找数组的长度?
一个。 您可以计算数组结尾 ( $
) 与其开头 ( offset array1
) 之间的差异。 您需要在数组定义之后立即进行计算。 如果你不这样做, $
将在程序中指向更远的地方。
array1 db 65,66,67
array1len equ $ - offset array1
array2 db 'Any string is an array too!'
array2len equ $ - offset array2
乙。 如果已知数组有一些特殊的终止值,那么搜索该值也是一种查找数组长度的方法。 考虑一个 ASCIIZ 字符串,一个以零字节结尾的 ASCII 字符串:
string db 'Just a text.', 0
下一个循环将在CX
中产生长度(12,当然不包括零字节):
mov si, offset string - 1
back:
inc si
cmp byte ptr [si], 0
jne back
lea cx, [si - offset string]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.