王爽汇编语言实验9根据材料编程

80x25彩色字符模式显示缓冲区(以下简称为显示缓冲区)的结构:
内存地址空间中,B8000H}BFFFFH共32KB的空间,为80 X 25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。
在80x25彩色字符模式下,显示器可以显示25行,每行80个字符,每个字符可以有256种属性(背景色、前景色、闪烁、高亮等组合信息)。
这样,一个字符在显示缓冲区中就要占两个字节,分别存放字符的ASCII码和属性。80x25模式下,一屏的内容在显示缓冲区中共占4000个字节。
显示缓冲区分为8页,每页4KB(}4000B),显示器可以显示任意一页的内容。一般情况下,显示第0页的内容。也就是说通常情况下,B8000H-B8F9FH中的4000个字节的内容将出现在显示器上。
显示缓冲区
全称80x25彩色字符模式显示缓冲区,在内存中b8000h~bffffh共32KB的空间为80x25彩色字符模式的显示缓冲区,这个内存地址中的数据会即时更新显示器上的内容。

在此模式下,显示器共显示25行,每行80个字符,每个字符256种属性,一个字符占两个字节,低位存ASCII码,高位存属性。一屏的内容为4000字节,显示缓冲区分为8页,通常情况下显示器显示第0页的内容(b8000h~b8f9fh),第一行的内容为(b8000~b809fh),第二行为(b80a0h~B813FH),一行160字节,以此类推

assume cs:code, ds:data

data segment
    output db 'welcome to masm!$'
data ends

code segment
    start:
        mov ax, data
        mov es, ax
        mov ax, 0b800h
        mov ds, ax
        mov cx, 16
        mov si, 0
        mov di, 0
        s1:
            mov al, es:output[si]
            mov dl, 11000010b ;字符属性
            mov ds:[700+di], al
            mov ds:[700+di+1], dl
            add di, 2
            inc si
        loop s1

        mov cx, 16
        mov si, 0
        mov di, 0
        s2:
            mov al, es:output[si]
            mov dl, 11000001b ;字符属性
            mov ds:[860+di], al
            mov ds:[860+di+1], dl
            add di, 2
            inc si
        loop s2

        mov cx, 16
        mov si, 0
        mov di, 0
        s3:
            mov al, es:output[si]
            mov dl, 10010010b ;字符属性
            mov ds:[1020+di], al
            mov ds:[1020+di+1], dl
            add di, 2
            inc si
        loop s3

        mov ax, 4c00h
        int 21h


code ends

end start

发布日期:

所属分类: 编程 标签:


没有相关文章!