我对装配很新。我总是对数字感到困惑 有人可以帮帮我吗 ?我正在使用TASM ...所以8066汇编程序 有什么好的参考我可以使用吗?
SCREEN_CLEARER:
mov ax,1720h
mov cx,2000
mov bx,0
L2:
mov es:[bx],ax
add bx,2
loop L2
ret
我真的不知道1720h,2000是什么。我也不太清楚如何阅读移动es:[bx],ax
非常感谢
答案 0 :(得分:6)
看起来像DOS代码,试图填充(文本)屏幕缓冲区左右......,IIRC ax
将字符(0x20 ==''== space)与文本属性结合(0x17 ==前景色/背景色。)
2000年将是80x25;)
为此, es
指向屏幕缓冲区。
L2:
mov es:[bx],ax
add bx,2
loop L2
将字符和属性(在ax
中)移动到es:[0]
的每个单词中2000个字(== 2个字节),直到cx
变为0(这就是{{的意思) 1}}操作码)。