首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在emu8086程序集中获得数组长度?

如何在emu8086程序集中获得数组长度?
EN

Stack Overflow用户
提问于 2020-12-16 08:01:55
回答 1查看 428关注 0票数 1

我想获得emu8086程序集中的数组长度。对于lengthsizeof,我得到一个错误:

错误参数

有人能帮我找到数组的长度吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-16 14:14:19

A.可以计算数组结束($)和开始(offset array1)之间的差异。您需要在数组定义之后立即进行计算。如果没有,$就会在程序中指向更低的位置。

代码语言:javascript
复制
array1 db 65,66,67
array1len equ $ - offset array1

array2 db 'Any string is an array too!'
array2len equ $ - offset array2

B。如果数组已知有一些特殊的终止值,那么搜索该值也是查找数组长度的一种方法。考虑一个ASCIIZ字符串,一个以零字节结尾的ASCII字符字符串:

代码语言:javascript
复制
string db 'Just a text.', 0

下一个循环将在CX中生成长度(当然不包括零字节)。

代码语言:javascript
复制
  mov  si, offset string - 1
back:
  inc  si
  cmp  byte ptr [si], 0
  jne  back
  lea  cx, [si - offset string]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65319331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档