freq dw 512 dup(0)
lea si, freq
;Now if I move a char 'a' into al and then do:
mov [si], al
这会将字母“a”放入数组的第一个位置吗?我试图让与'a'对应的ASCII数字增加1,所以在数组freq +1的第97行。如何更改我的代码来执行此操作?
*基本上我正在尝试使用一个数组来存储我在浏览文件时遇到的所有字符的频率计数
这会将字母“a”放入数组的第一个位置吗?
是的(实际上在第一个元素的低字节中,因为freq
是一个单词数组)。
我试图让与'a'对应的ASCII数字增加1,所以在数组freq +1的第97行。
mov bx,'a'*2
inc word ptr [bx+si]
或者,如果您有以下角色al
:
xor bh,bh ; clear bh
mov bl,al
add bx,bx ; scale index by 2
inc word ptr [bx+si]
如果允许 80386 指令,您可以将xor bh,bh
和mov bl,al
替换为movzx bx,al
.