这是一小段汇编代码(TASM),我只是尝试在数组的当前索引处递增值。这个想法是" freq" array将存储一个数字(DWord大小),表示在文件中看到ASCII字符的次数。为了保持代码简短," b"存储正在读取的当前字节。
Declared in data segment
freq DD 256 DUP (0)
b DB ?
___________
Assume b contains current byte
mov bl, b
sub bh, bh
add bx, bx
inc freq[bx]
我在编译时在包含" inc freq [bx]": 错误 的行中收到此错误操作或指令的参数非法大小
非常感谢任何见解。
答案 0 :(得分:2)
没有inc
可以在16位模式下递增双字。您必须从add / adc合成它,例如:
add freq[bx], 1
adc freq[bx + 2], 0
您可能需要添加尺寸覆盖,例如word ptr
或将数组定义更改为freq DW 512 DUP (0)
。
另请注意,您必须将索引缩放4而不是2。