这些线在装配中做了什么?

时间:2011-04-10 00:26:20

标签: assembly masm tasm

我对装配很新。我总是对数字感到困惑 有人可以帮帮我吗 ?我正在使用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

非常感谢

1 个答案:

答案 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}}操作码)。