CMP在循环不工作
问题描述:
我有一个装配环:CMP在循环不工作
mov dx, [block_pos]
mov bx,offset GameBoard
add bx, dx
; bx now holds the address of the player
mov cx,5
rows_loop:
add bx,COL_NUM
inc rows_counter
cmp [bx],'_'
je print_rows
loop rows_loop
IM添加到BX在板的cols的数量,并且每次我检查是否有一个壁在那里。
,不管怎样,当[BX]等于“_”(一个游戏中的墙),它不会跳到print_rows
多次尝试后,我敢肯定它的东西与实际语法或别的东西,而不是代码背后的逻辑。
答
您没有指定的操作数大小。明智的装配人员会因错误而中止。你没有提到你正在使用的汇编程序,所以也许你的程序默认使用字大小,并且不符合你的电路板。您可能需要类似cmp byte ptr [bx], '_'
PS:学习使用调试器(和您的汇编程序;))。
相同的结果。顺便说一句,我使用8086大会 –