要求:

在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串’welcom to masm!’

编程所需的知识如下:

  • 内存地址空间中,B8000H~BFFFFH共32KB的空间,为80×2580\times2580×25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。80×2580\times2580×25代表显示器可以显示25行,每行80个字符。
  • 每个字符有256种属性(背景色、前景色、闪烁、高亮等信息),所以一个字符在显示缓冲区要占两个字节,分别存放字符的ASCⅡ码和属性。80×2580\times2580×25模式下,一屏的内容在显示缓冲区中共占4000个字节。
  • 显示缓冲区分为8页,每页4KB(大约4000B),显示器可以显示任意一页的内容。一般情况下,显示第0页的内容。也就是说通常情况下,B8000H~B8F9FH中的4000个字节的内容将出现在显示器上
  • 在一页显示缓冲区中:
    偏移000~09F对应显示器上的第一行(80个字符占160个字节)
    偏移0A0~13F对应显示器上的第2行

    以此类推,偏移F00~F9F对应显示器上的第25行

例:在显示器的第0行0列显示黑底绿色的字符串’ABCDEF’

显示缓冲区里面的内容为:

可以看出,在显示缓冲区中,偶地址存放字符,奇地址存放字符的颜色属性。

一个在屏幕上显示的字符,具有前景(字符颜色)和背景(底色)两种颜色,字符还可以以高亮度和闪烁的方式显示。前景色、背景色、高亮等信息被记录在属性字节中。

属性字节的格式如下:

我们可以按位设置属性字节,从而配出各种不同的前景色和背景色,比如:

  • 红底绿字,属性字节为:01000010B
  • 红底闪烁绿字,属性字节为:11000010B

注意:闪烁的效果必须在全屏DOS的方式下才能看到。

assume cs:codedata segmentdb 'welcome to masm!'
data endscode segmentstart: mov ax,datamov ds,axmov ax,0b800h           ;这里需要注意,汇编中数据表示不能以字母开头,所以如果数据的开头是字母的话需要在字母前加0/待补充

实验9-编程显示字符串相关推荐

  1. 汇编语言 实验10.1 显示字符串

    汇编语言 实验10.1 显示字符串 问题 显示字符串是现实生活中经常要用到的功能,应该编写一个通用的子程序来实现这个功能.我们应该提供灵活的调用接口,是调用者可以决定显示的位置(行.列).内容和颜色. ...

  2. 汇编语言随笔(8)-实验9(显示字符串)、实验10(子程序:除法溢出,数值到字符串的转换)和课程设计1

    实验9 编程,在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串'welcome to masm!'.       80x25彩色字符模式下的显示缓冲区,每页可以显示25行,每行80个字符,其中每个字 ...

  3. 汇编语言:实验10 根据材料编程—1.显示字符串

    问题描述 显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能. 我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行.列).内容和颜色. 实验效果 将字符串展示到8行 ...

  4. 微型计算机原理怎么编程,微机原理实验一编程实现键盘输入和显示

    <微机原理实验一编程实现键盘输入和显示>由会员分享,可在线阅读,更多相关<微机原理实验一编程实现键盘输入和显示(9页珍藏版)>请在人人文库网上搜索. 1.实验一编程实现键盘输入 ...

  5. Java实验8 T3.编程显示当前鼠标的位置坐标

    编程显示当前鼠标的位置坐标 package text8;import java.awt.*; import java.awt.event.*;class Mouse extends Frame imp ...

  6. linux实验五编程淮海工学院,实验一-LinuxC编程工具GCC和GDB.doc

    实验一-LinuxC编程工具GCC和GDB 淮海工学院计算机工程学院实验报告书 课程名: <Linux程序设计> 题 目: 实验一 Linux C编程工具:GCC和GDB 班 级: 软件1 ...

  7. 两台电脑串口传输文件及调用opencv库编程显示图片和文本

    文章目录 一.两台电脑利用串口进行文件传输 (一).实验内容 (二).配置环境 (三).实验过程 (四).结果分析 二.在Ubuntu下基于Linux环境调用opencv库编程显示图片和文本 (一). ...

  8. C#网络编程(同步传输字符串)

    C#网络编程(同步传输字符串) - Part.2 服务端客户端通信 在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据.端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都 ...

  9. (七)DSP28335基础教程——I2C通信实验(OLED显示控制)

    0 前言 本期实验目标:采用硬件I2C模块与OLED进行通信,完成显示控制. 目前发现28335比较缺乏关于I2C模块的实用例程,许多新手在配置使用该模块比较难上手,走弯路.那么通过该例程,大家则可以 ...

  10. 合工大软件工程Java实验4--JavaWeb编程

    使用JSP实现登录注册案例 合工大Java实验4--JavaWeb编程 一.Tomcat安装.配置 1.下载 2.修改tomcat服务端口 二.HTML表单(form) form表单 post和get ...

最新文章

  1. post传参部分数据丢失
  2. 宝塔部署node项目_宝塔面板部署 node.js 项目
  3. CAS Client 3.2.1 配置详解
  4. Python入门教学之(转义字符与原字符)
  5. 第七章 线程的调度、优先级和亲缘性(4)
  6. 为XNA制做安装程序(四)WIX Toolset 3.0 for Visual Studio 2008
  7. 【CCCC】L2-012 关于堆的判断 (25分),,手写堆,二叉树编号,向上调整
  8. 单片机,嵌入式,PLC三者之间有什么区别,学习方向如何选择
  9. 透过表象看本质!?之三——Kalman滤波
  10. 汇编语言之DOSBox
  11. Python每日笔记打卡_day2
  12. 高红梅:第三章 第三节 从探寻自我到生命共同体的身份认同
  13. 什么是埃博拉免疫T-细胞?
  14. 系统管理中的三大利刃
  15. 学习Linux系统清理/var/log/journal/垃圾日志教程
  16. 经纬度转高斯坐标 java_经纬度坐标与高斯坐标的转换代码
  17. 七种常见的数据分析法之:可行域分析
  18. C语言 图形任意多次平移、旋转、缩放和对称的变换方案
  19. csp 2022 总结
  20. ISO22000认证|企业申请ISO22000认证资料自查

热门文章

  1. java selenium sleep_【转】java-selenium三种等待方式
  2. 开源大数据生态下的 Flink 应用实践
  3. 我与潘家园金爷的对话
  4. 利用并查集+贪心解决 Hdu1232
  5. java 象棋 人工智能_【揭秘】人工智能大热,缘何不敢挑战中国象棋?
  6. 简书python_python爬虫(以简书为例)
  7. linux 命令行 迅雷替代,linux下迅雷的替代
  8. sql 创建表、删除表 增加字段 删除字段操作
  9. FR跨SHEET条件汇总
  10. 转(static final 和final的区别)