这些线在装配中起什么作用?

发布于 2024-10-31 06:32:11 字数 258 浏览 2 评论 0原文

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

非常感谢

I am quite new to assembly. I am always confused by the numbers
Can someone please help me ? I am using TASM... so 8066 assembler
Is there any good reference that I can use?

SCREEN_CLEARER:
mov ax,1720h
mov cx,2000
mov bx,0
L2:
mov es:[bx],ax
add bx,2
loop L2
ret

I don't really get what 1720h, 2000 are. I also not quite sure how to read move es:[bx],ax

Thank you very much

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏闹i 2024-11-07 06:32:11

看起来像 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(这就是loop操作码的含义)。

Looks like DOS-code, trying to fill the (text) screen buffer or so ..., IIRC ax would be character (0x20 == ' ' == space) combined with the text attributes (0x17 == foreground/background color).

The 2000 would be 80x25 ;)

es would for this purpose point to the screen buffer.

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

moves the character and attribute (in ax) into each word from es:[0] for 2000 words (== 2 bytes) until cx becomes 0 (that's the meaning of the loop opcode).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文