video - 中断 10h

标签 video assembly interrupt

中断10h可以使用的服务有很多, 我想问一下关于其中两个我很困惑的问题

首先是,

 AH = 06H SCROLL UP WINDOW
 AH = 07H SCROLL DOWN WINDOW

在 DOS 中编写代码时,向上滚动/向下滚动是什么意思?

看看这个,

; AL = NUMBER OF LINES BY WHICH TO SCROLL UP (00H = CLEAR ENTIRE WINDOW)
; BH = ATTRIBUTE USED TO WRITE BLANK LINES AT BOTTOM OF WINDOW
; CH,CL = ROW,COLUMN OF WINDOW'S UPPER LEFT CORNER
; DH,DL = ROW,COLUMN OF WINDOW'S LOWER RIGHT CORNER

这里说BH是用来写窗口底部的空行的, 但是当我使用这段代码时,

MOV AH, 06H
MOV AL, 00H
MOV CX, 00H
MOV DH, 25
MOV DL, 80
INT 10H

并且没有定义BH的值,我的结果不会显示在屏幕上,一旦我声明了Bh的值,它实际上是控制DOS屏幕的前景色和背景色。 那为什么说BH是用来在窗口底部写空行呢?

第二个是,

;AH = 02 USED To SET CURSOR POSITION

    ;BH = PAGE NUMBER
    ;CH,CL = ROW,COLUMN OF WINDOW'S UPPER LEFT CORNER
    ;DH,DL = ROW,COLUMN OF WINDOW'S LOWER RIGHT CORNER

这里 BH 等于页码 :confused: ?正常 DOS 屏幕中的页码是什么意思?

最佳答案

我现在无法访问测试工具 -- 事实上,您在 DOS 上的实模式汇编中到底在做什么? -- 但根据内存,这些应该是你的答案:

While coding in DOS what is meant by Scroll up / Scroll down ?

“向上滚动”将是“将屏幕上的所有内容向上移动”。 AL 中的值由多少决定。例如,当 AL=2 时,“向上滚动”会将屏幕上的所有文本向上移动两行。

“向下滚动”会将其向另一个方向移动。

您可以通过适当设置 CX 和 DX 来移动屏幕的任意部分/窗口。例如,由于屏幕大概有 80x25 个字符,当 CH=1、CL=1、DH=23、DL=78 时,将移动的部分将是整个屏幕,除了每个边缘的一个字符的边框。

作为一种特殊情况,AL=0 会导致整个窗口被清空。


why does it says that BH is used to write blank lines at the bottom of the window ?

它说 BH 是写空白行时使用的属性。在文本模式下,偶数地址保存要显示的字符,而奇数地址保存用于显示的属性。 BH会为这个调用写入的每个新字符赋予属性。

属性主要是角色的前景色和背景色。通过设置背景颜色和清屏,可以有效地用一种颜色填充屏幕。


我想澄清一点关于硬件寄存器的问题。你说

but when i am using this code, and not defining the value of BH

请注意,BH 始终有一个值!您只是偶然地使用了周围的那个。请将 BH 设置为您需要的任何值。例如 0x07 表示黑色上的正常白色。


what is meant by a page number in a normal DOS screen ?

类似于现代图形编程中的多个屏幕缓冲区(front buffer,back buffer)。您可以通过使用 AH=05 调用 int 10h 来切换页面。参见 Ralf Brown's Interrupt list .

关于video - 中断 10h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337827/

相关文章:

android - 在 Facebook 中分享视频链接和在线播放

c++ - macOS - 读取其他应用程序库代码的一部分并将其反汇编以获取偏移量

interrupt - STM32f0 是否可以在 DMA 完成一半时获得中断

xcode - Mac 上的 x86 汇编

kernel - 什么是中断线程?

linux - 网络流量的软件中断

android - Ionic v1 html5 视频播放器屏幕变黑但音频继续

video - HEVC:从输入二进制流中获取输入宽度和高度

php - 如何找到 vimeo 视频的下载链接?

linux - 程序集 x64 getcwd() 未输出