• x8086汇编在显存中显示字符串


    题目:在屏幕中间显示绿色,绿底红色,白底蓝色的字符串‘welcome to masm!’

    80X25彩色字符模式显示缓冲区的结构:

      在内存地址结构中,B8000H~BFFFFH共32KB的空间,为80x25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在

    显示器上。

      在80x25彩色模式下,显示器可以显示25行,每行80个字符,每个字符可以由256中属性。

      80x25模式下,一屏的内容在显示缓冲区共4000个字符。

    ===========================================================

    绿色:    0000 0010B -> 02H

    绿底红色:  0010 0100B -> 24H

    白底蓝色:  0111 0001B -> 71H

    ============================================================

    代码:

     1 assume cs:code,ss:stack,ds:data
     2 
     3 data segment
     4         db 'welcome to masm!'
     5         db 00000010B
     6         db 00100100B
     7         db 01110001B
     8 data ends
     9 
    10 stack segment
    11         db 128 dup (0)
    12 stack ends
    13 
    14 code segment
    15 
    16  start: mov ax,stack
    17         mov ss,ax
    18         mov sp,128
    19 
    20         mov ax,data
    21         mov ds,ax
    22 
    23         jmp show_m
    24 
    25    xh:  jmp xh
    26 
    27   next: mov ax,4c00h
    28         int 21h
    29 ;-------------------------------------
    30 show_m:
    31 
    32         mov bx,0b800h
    33         mov es,bx
    34 
    35         mov bx,16             ; ds:[bx]  color
    36         mov di,12*160+60      ; es:[di]  zimu + color
    37 
    38         mov cx,3
    39 
    40  s_c:   push cx
    41         push di
    42 
    43         mov si,0              ; ds:[si] zimu
    44         mov cx,16
    45 
    46 
    47  s_w:   mov dl,ds:[si]
    48         mov dh,ds:[bx]
    49         mov es:[di],dx
    50         inc si
    51         add di,2
    52         loop s_w
    53 
    54         pop di
    55         pop cx
    56         inc bx
    57         add di,160
    58         loop s_c
    59 
    60         jmp next
    61         
    62 
    63 
    64 code ends
    65 
    66 end start
  • 相关阅读:
    iOS开发 | 自定义不规则label
    监控redis的操作命令
    HTML常用标签
    前端学习【第一篇】: HTML内容
    MySQL数据库修改字段的长度
    python模块之:paramiko
    使用pymysql操作mysql数据库
    Python开发【第九篇】: 并发编程
    JNI调用实例
    JVM性能调优入门
  • 原文地址:https://www.cnblogs.com/xautxuqiang/p/5468115.html
Copyright © 2020-2023  润新知