我有一个汇编循环:
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
我将bx中的cols数添加到bx中,每次检查那里是否有墙。
不知何故,当[bx]等于'_'(游戏中的墙)时,它不会跳转到print_rows
经过多次尝试后,我很确定它是实际语法或其他东西而不是代码背后的逻辑。
答案 0 :(得分:1)
您未指定cmp [bx], '_'
的操作数大小。明智的装配工将因错误而中止。你没有提到你正在使用的汇编程序,所以也许你的默认使用字大小而且与你的电路板不匹配。您可能需要cmp byte ptr [bx], '_'
PS:学习使用调试器(和汇编程序;))。