zoukankan      html  css  js  c++  java
  • 汇编语言-王爽-实验10

    1.显示字符串

    问题:编写一个通用的子程序来实现该功能

    子程序名称:show_str

    功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串

    参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),(cl)=颜色,ds:si指向字符串的首地址

    返回:无

    应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。

     

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

    80*25表示显示器可以显示25行,每行80个字符,每个字符可以有256中属性(背景色、前景色、闪烁、高亮等组合信息)。每个字符在显示缓冲区中占有两个字节,分别存放字符的ASCII码和属性。在

    8*25模式下,一屏的内容在显示缓冲区中共占4000个字节。

     1 assume  cs:code, ds:data, ss:stack
     2 data segment
     3     db 'Welcome to masm!', 0
     4 data ends
     5 
     6 stack segment
     7     db  16 dup (0)
     8 stack ends
     9 
    10 code segment
    11      start :  mov dh, 8
    12     mov  dl, 3
    13     mov  cl, 2
    14     mov ax, data
    15     mov ds, ax
    16     mov ax, stack
    17     mov ss, ax
    18     mov sp, 16
    19     mov si, 0
    20     call  show_str
    21 
    22     mov ax, 4c00h
    23     int 21h
    24 
    25 show_str: push cx
    26     mov ax, 0b800h
    27     mov es, ax
    28     mov di, 1124
    29           s :  mov cl, [si]
    30     mov ch, 0
    31     jcxz   ok
    32     mov es:[di], cl
    33     inc   di
    34     pop cx
    35     mov es:[di], cl
    36     push cx
    37     inc   si
    38     inc   di
    39     jmp  s
    40         ok :  pop cx
    41     ret
    42 code ends
    43 end start

    DOSBox下执行结果

     

     

  • 相关阅读:
    Python
    版本控制
    后台
    前端
    提升权限 关闭系统
    SC命令(windows服务开启/禁用)
    获取当前电脑全部网络连接名字
    x64 win64编译环境下ADO链接Access数据库的问题解决
    Netsh命令-网络禁用开启
    windows主机防护
  • 原文地址:https://www.cnblogs.com/hl249853856/p/11838021.html
Copyright © 2011-2022 走看看