我的任务的最后一部分存在问题。我们得到一串比特等,在这个流中是一个整数,文本部分中的数字是1。我得到这个整数和它的24是正确的,现在我循环通过我得到的文本数据,并且我尝试计算所有的1在那里。但是我的proc总是返回零。有关比特比较的x86问题
我能够确保它正确地循环,它是。
该文本=你好 这是16 1的,这里是我的过程循环通过该文本来计算它的数量。
sub AX,AX
sub SI,SI
mov bx,[bp+6] ;get message offset
@@mainLoop:
mov cx,8
mov dh,80h
cmp byte ptr [bx + si],0
je @@endChecker
@@innerLoop:
test byte ptr [bx + si],dh
jz @@zeroFound
inc AX
@@zeroFound:
shr bh,1
loop @@innerLoop
@@continue:
inc si
jmp @@mainLoop
其余的proc只是推/弹出。实际上我想要做的是使用TEST将100000000与一个字节进行比较,如果它的值为1 inc,则AX将掩码右移1并循环一个字节,然后再循环到下一个字节并再次执行。
哇,这是一个白痴,就是这样,thx。 – chicken 2008-10-24 02:25:11