arrays - 如何创建由程序集中的寄存器定义的大小的初始化数组?
问题描述
我目前正在尝试在程序集中初始化一个数组,其大小由寄存器中的数字定义。我也在使用 NASM,并为 32 位编译。
我已经尝试使用时间来定义多个字节,但它不起作用,因为时间需要一个常量,而不是一个寄存器。
mov bl, bh
mul bl, 512
sectors times bl db 0
bh 是我正在使用的函数的输入寄存器。
组装时,NASM 输出错误:
错误:提供给 TIMES 的非常量参数
有谁知道我如何使用寄存器作为大小创建一个 0 数组?
编辑:我决定将数据直接写入内存,而不是用时间初始化它。
编辑 2:这是我写的驱动程序:https ://pastebin.com/JKdUaeH5
解决方案
推荐阅读
- azure-devops - 两个 Azure Artefacts 源中的同一个包占用了两倍的包空间?
- python - 如何将转换后的文件写入另一个目录
- javascript - core.js?09c9:4002 错误 RangeError: zone.js / Angular CLI - 8.3.29 版本中超出了最大调用堆栈大小
- python - python web抓取问题与机械化
- ios - 在 ios 模拟器中测试 webauthn
- c++ - 编写 Clang-Tidy 检查,如何查找指针在调用之前是否已初始化?
- python - 使用 for 循环对 Tesseract 进行缓慢数字化
- percentage - 与百分比的余弦相似度
- c# - 选中复选框时计算平均值 C#
- php - 将自定义小部件值添加到 wordpress 网站上的数组