2

我对组装很陌生。我总是对数字感到困惑 有人可以帮助我吗?我正在使用 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是什么。我也不太清楚如何阅读 move es:[bx],ax

非常感谢

4

1 回答 1

6

看起来像 DOS 代码,试图填充(文本)屏幕缓冲区左右......,IIRCax将是字符(0x20 == ' ' == 空格)结合文本属性(0x17 == 前景色/背景色)。

2000 将是 80x25 ;)

es将为此目的指向屏幕缓冲区。

L2:
mov es:[bx],ax
add bx,2
loop L2

将字符和属性 (in ) 从2000 个单词 (== 2 个字节)移动ax到每个单词中,直到变为 0 (这就是操作码的含义)。es:[0]cxloop

于 2011-04-10T00:33:32.647 回答