• [汇编语言]-第九章 在屏幕中间分别显示绿底红色,白底蓝色字符串"welcome to masm!"


     1 ;在屏幕中间分别显示绿色,绿底红色,白底蓝色字符串"welcome to masm!"
     2 assume cs:codesg,ds:datasg,ss:stacksg
     3 datasg segment
     4     db 'welcome to masm!'
     5     db 02h,24h,71h
     6 datasg ends
     7 stacksg segment
     8     db 8 dup(0)
     9 stacksg ends
    10 codesg segment
    11 start:    mov ax,datasg
    12         mov ds,ax
    13         
    14         mov ax,stacksg
    15         mov ss,ax
    16         mov sp,10H
    17         
    18         mov bx,0
    19         mov di,0
    20         
    21         mov ax,0B872H  ;;0B828H屏幕第一个位置
    22         mov cx,3
    23     s3: push cx
    24         push ax
    25         push di
    26         
    27         mov es,ax
    28         mov si,0
    29         mov di,0
    30         mov cx,10h
    31     s1: mov al,ds:[bx+si]
    32         mov es:[bx+di],al
    33         inc si
    34         add di,2
    35         loop s1
    36         
    37         mov si,1
    38         pop di
    39         mov al,ds:10h[bx+di]
    40         
    41         mov cx,10h 
    42     s2: mov es:[bx+si],al
    43         add si,2
    44         loop s2
    45         inc di
    46         pop ax
    47         add ax,0ah
    48         pop cx
    49         loop s3
    50         mov ax,4c00h
    51         int 21h
    52 codesg ends
    53 end start

     

    在b872处显示'welcome to masm!'

     1 assume cs:code,ds:data
     2 data segment
     3     db 'welcome to masm!'
     4     db 02h,24h,71h
     5 data ends
     6 code segment
     7 start:
     8         mov ax,0b872H
     9         mov es,ax
    10         
    11         mov ax,data
    12         mov ds,ax
    13         
    14         mov bx,0
    15         mov cx,16
    16         mov di,0
    17     s:  
    18         mov al,ds:[bx]
    19         mov ah,ds:[18]
    20         mov es:[di],ax
    21         inc bx
    22         add di,2
    23         loop s
    24 
    25         mov ax,4c00h
    26         int 21h
    27 code ends
    28 end start

    一个字符两个字节的存储方式,低字节存储ASCII,高字节存储字符属性,一行共80个字符,占160个字节.

    属性字节格式:

    7  6  5  4  3  2  1  0

    BL R  G  B  I  R  G  B

    7闪烁

    6 5 4 背景

    3 高亮

    2 1 0 前景

    R red

    G green

    B blue

    红底绿字:01000010B

    红底闪烁绿字: 11000010B

    红底高亮绿字: 01001010B

    黑底白字: 00000111B

    白底蓝字: 01110001B

    闪烁的效果必须在全屏DOC方式下才能看到.(ps:测试一直没看到闪烁)

  • 相关阅读:
    Confluence未授权模板注入/代码执行(CVE-2019-3396)
    Python实现批量处理扫描特定目录
    windows10 缺失 msvcp140.dll 解决办法
    nessus 故障处理
    python 处理json数据
    python 实现两个文本文件内容去重
    python3 实现多域名批量访问特定目录(一)
    python 简单的实现文件内容去重
    python 实现爬取网站下所有URL
    php强大的filter过滤用户输入
  • 原文地址:https://www.cnblogs.com/galoishelley/p/3581899.html
Copyright © 2020-2023  润新知