汇编中如何为按键控制的屏幕移动元素设置边界?
汇编控制点移动:禁止第一行的点向上移动
我写了一段用wasd键控制字符点在ES(extra seg)段中移动的汇编代码,现在要实现:判断点是否处于第一行,若是则禁止向上移动。我问过老师是否需要用cmp指令,老师说不需要。
在实现向上移动的up过程时,我试过把BX设为0,循环检查SI是否和BX相等,直到BX超出第一行范围,但运行后按w键完全没反应。
最初的up过程代码:
proc up mov ah, 0 mov al, ' ' mov [es:si], ax sub si, 80*2 mov ah, 156 mov al, '*' mov [es:si], ax ret endp up
尝试使用cmp的代码:
proc up mov ah, 0 mov al, ' ' mov [es:si], ax mov bx, 0 check: cmp bx, 80*2 jz move cmp si, bx jz not_move inc bx jmp check move: sub si, 80*2 mov ah, 156 mov al, '*' mov [es:si], ax not_move: ret endp up
内容的提问来源于stack exchange,提问作者yarden
相关产品推荐
相关产品推荐

