该文件用于在屏幕上显示字符。

disp_letter_font:显示字符;

数组font_0_buf到font_cnsl_buf,为各字符的点阵;

数字font_letter_mem用于记录各字符点阵的起始地址;

;===============================================================================
;=== 本程序提供字符显示功能:                                                ===
;=== 1.字符显示函数                                                          ===
;=== 2.各类字符数组                                                          ===
;===============================================================================;-------------------------------------------------------------------------------
disp_letter_font:                             ;显示字符;输入参数:eax-高16位为Y值;低16位为X值;输入参数:bl-对应的字符编码;输入参数:cl-字符显示的颜色;输出参数:无push ebppush eax                                 ;[ebp+8]: eaxpush ebx                                 ;[ebp+4]: ebxpush ecx                                 ;[ebp]: ecxmov ebp, esp;计算字符左上角点对应的显存地址xor ebx, ebxmov ebx, eaxshr eax, 16                              ;ax对应Y值and ebx, 0xffff                          ;bx对应X值mov cx, 320                              ;一行320个点mul cxadd eax, ebx                             ;eax中为字符左上角点在显存中的偏移mov [font_dis_saddr], eax                ;记录该偏移   ;做好画点的准备mov edx, font_letter_mem                 ;edx为保存字符点阵的内存地址mov eax, [ebp+4]                         ;bl为对应字符的编码and eax, 0x0ffshl eax, 2                               ;左移2位,也是乘以4add edx, eaxmov edx, [edx]   mov ebx, [font_dis_saddr]                ;edx设置为字符显存偏移add ebx, pic_mem_addr                    ;ebx指向字符对应的显存起始地址mov ecx, 16                              ;每个字符16行;逐行的显示字符的点阵
_disp_a_letter:     mov al, [edx]mov ah, 0                                ;默认为黑色test al, 0x80jz _8@mov ah, [ebp]                            ;否则为红色
_8@:mov [ebx], ah     inc ebxmov ah, 0                                ;默认为黑色test al, 0x40jz _7@mov ah, [ebp]                            ;否则为红色
_7@:mov [ebx], ah inc ebx   mov ah, 0                                ;默认为黑色test al, 0x20jz _6@mov ah, [ebp]                            ;否则为红色
_6@:mov [ebx], ah inc ebx   mov ah, 0                                ;默认为黑色test al, 0x10jz _5@mov ah, [ebp]                            ;否则为红色
_5@:mov [ebx], ah inc ebx   mov ah, 0                                ;默认为黑色test al, 0x08jz _4@mov ah, [ebp]                            ;否则为红色
_4@:mov [ebx], ah inc ebx   mov ah, 0                                ;默认为黑色test al, 0x04jz _3@mov ah, [ebp]                            ;否则为红色
_3@:mov [ebx], ah inc ebx   mov ah, 0                                ;默认为黑色test al, 0x02jz _2@mov ah, [ebp]                            ;否则为红色
_2@:mov [ebx], ah inc ebx   mov ah, 0                                ;默认为黑色test al, 0x01jz _1@mov ah, [ebp]                            ;否则为红色
_1@:mov [ebx], ah inc ebx   inc edx                                  ;下一个字符add ebx, 312                             ;显存地址移到下一行loop _disp_a_letterpop ecxpop ebxpop eaxpop ebpret;--------------------------------全局变量---------------------------------------
align 4font_dis_saddr   dd 0x0                  ;用于记录对应字符显存的首地址font_letter_mem  dd font_0_buf,     font_1_buf,     font_2_buf,      font_3_buf, dd font_4_buf,     font_5_buf,     font_6_buf,      font_7_buf,dd font_8_buf,     font_9_buf,     font_a_buf,      font_b_buf,dd font_c_buf,     font_d_buf,     font_e_buf,      font_f_buf,dd font_g_buf,     font_h_buf,     font_i_buf,      font_j_buf,dd font_k_buf,     font_l_buf,     font_m_buf,      font_n_buf,                   dd font_o_buf,     font_p_buf,     font_q_buf,      font_r_buf,dd font_s_buf,     font_t_buf,     font_u_buf,      font_v_buf,dd font_w_buf,     font_x_buf,     font_y_buf,      font_z_buf,dd font___buf,     font_cnsl_buf               font_0_buf       db 0x00,0x00,0x3E,0x63,0x63,0x63,0x6B,0x6B, db 0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00 font_1_buf       db 0x00,0x00,0x0C,0x1C,0x3C,0x0C,0x0C,0x0C, db 0x0C,0x0C,0x0C,0x3F,0x00,0x00,0x00,0x00           font_2_buf       db 0x00,0x00,0x3E,0x63,0x03,0x06,0x0C,0x18, db 0x30,0x61,0x63,0x7F,0x00,0x00,0x00,0x00font_3_buf       db 0x00,0x00,0x3E,0x63,0x03,0x03,0x1E,0x03, db 0x03,0x03,0x63,0x3E,0x00,0x00,0x00,0x00font_4_buf       db 0x00,0x00,0x06,0x0E,0x1E,0x36,0x66,0x66, db 0x7F,0x06,0x06,0x0F,0x00,0x00,0x00,0x00font_5_buf       db 0x00,0x00,0x7F,0x60,0x60,0x60,0x7E,0x03, db 0x03,0x63,0x73,0x3E,0x00,0x00,0x00,0x00font_6_buf       db 0x00,0x00,0x1C,0x30,0x60,0x60,0x7E,0x63, db 0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00font_7_buf       db 0x00,0x00,0x7F,0x63,0x03,0x06,0x06,0x0C, db 0x0C,0x18,0x18,0x18,0x00,0x00,0x00,0x00font_8_buf       db 0x00,0x00,0x3E,0x63,0x63,0x63,0x3E,0x63, db 0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00font_9_buf       db 0x00,0x00,0x3E,0x63,0x63,0x63,0x63,0x3F, db 0x03,0x03,0x06,0x3C,0x00,0x00,0x00,0x00 font_a_buf       db 0x00,0x00,0x00,0x00,0x00,0x3C,0x46,0x06, db 0x3E,0x66,0x66,0x3B,0x00,0x00,0x00,0x00font_b_buf       db 0x00,0x00,0x70,0x30,0x30,0x3C,0x36,0x33,db 0x33,0x33,0x33,0x6E,0x00,0x00,0x00,0x00font_c_buf       db 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x60,db 0x60,0x60,0x63,0x3E,0x00,0x00,0x00,0x00 font_d_buf       db 0x00,0x00,0x0E,0x06,0x06,0x1E,0x36,0x66,db 0x66,0x66,0x66,0x3B,0x00,0x00,0x00,0x00 font_e_buf       db 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x63,db 0x7E,0x60,0x63,0x3E,0x00,0x00,0x00,0x00 font_f_buf       db 0x00,0x00,0x1C,0x36,0x32,0x30,0x7C,0x30,db 0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00 font_g_buf       db 0x00,0x00,0x00,0x00,0x00,0x3B,0x66,0x66,db 0x66,0x66,0x3E,0x06,0x66,0x3C,0x00,0x00 font_h_buf       db 0x00,0x00,0x70,0x30,0x30,0x36,0x3B,0x33,db 0x33,0x33,0x33,0x73,0x00,0x00,0x00,0x00 font_i_buf       db 0x00,0x00,0x0C,0x0C,0x00,0x1C,0x0C,0x0C,db 0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00 font_j_buf       db 0x00,0x00,0x06,0x06,0x00,0x0E,0x06,0x06,db 0x06,0x06,0x06,0x66,0x66,0x3C,0x00,0x00 font_k_buf       db 0x00,0x00,0x70,0x30,0x30,0x33,0x33,0x36,db 0x3C,0x36,0x33,0x73,0x00,0x00,0x00,0x00 font_l_buf       db 0x00,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x0C,db 0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00 font_m_buf       db 0x00,0x00,0x00,0x00,0x00,0x6E,0x33,0x33,db 0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00 font_n_buf       db 0x00,0x00,0x00,0x00,0x00,0x6E,0x7F,0x6B,db 0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0x00 font_o_buf       db 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x63,db 0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00font_p_buf       db 0x00,0x00,0x00,0x00,0x00,0x6E,0x33,0x33,db 0x33,0x33,0x3E,0x30,0x30,0x78,0x00,0x00font_q_buf       db 0x00,0x00,0x00,0x00,0x00,0x3B,0x66,0x66,db 0x66,0x66,0x3E,0x06,0x06,0x0F,0x00,0x00font_r_buf       db 0x00,0x00,0x00,0x00,0x00,0x6E,0x3B,0x33,db 0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00font_s_buf       db 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x38,db 0x0E,0x03,0x63,0x3E,0x00,0x00,0x00,0x00font_t_buf       db 0x00,0x00,0x08,0x18,0x18,0x7E,0x18,0x18,db 0x18,0x18,0x1B,0x0E,0x00,0x00,0x00,0x00font_u_buf       db 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,db 0x66,0x66,0x66,0x3B,0x00,0x00,0x00,0x00font_v_buf       db 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x36,db 0x36,0x1C,0x1C,0x08,0x00,0x00,0x00,0x00font_w_buf       db 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,db 0x6B,0x6B,0x7F,0x36,0x00,0x00,0x00,0x00font_x_buf       db 0x00,0x00,0x00,0x00,0x00,0x63,0x36,0x1C,db 0x1C,0x1C,0x36,0x63,0x00,0x00,0x00,0x00font_y_buf       db 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,db 0x63,0x63,0x3F,0x03,0x06,0x3C,0x00,0x00font_z_buf       db 0x00,0x00,0x00,0x00,0x00,0x7F,0x66,0x0C,db 0x18,0x30,0x63,0x7F,0x00,0x00,0x00,0x00font___buf       db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,db 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00font_cnsl_buf    db 0x00,0x00,0x00,0x60,0x30,0x18,0x0C,0x06,db 0x0C,0x18,0x30,0x60,0x00,0x00,0x00,0x00

系统的简单注解 - 12 09_font.asm相关推荐

  1. 铁路购票系统的简单座位分配算法

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  2. 2016CCF、CSP 第二题铁路购票系统的简单座位分配算法(JAVA版)

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  3. 关于《龙族幻想》的系统以及简单分析

    一.前言 游戏经历展示 经历报告前言 游戏经历时长:585天 服务器:五区时间掌控 等级:141级 评分:908000+ <龙族幻想>是一款祖龙研发,腾讯代理的RPG手游.采用UE4引擎, ...

  4. python使用redis在实际场景使用_Python使用Redis实现作业调度系统(超简单)

    概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁 ...

  5. Linux kubuntu x64系统下解决QT5.12编辑菜单和工具栏不显示图标问题

    Linux kubuntu x64系统下发现QT5.12在设计视图下编辑菜单和工具栏显示图标,但是编译运行后发现菜单和工具栏不显示图标,如下图: 我的解决办法是: 1.在QT项目中,菜单和工具栏图标一 ...

  6. linux系统下定时备份,在Linux系统中简单地实现定时备份的方法 -电脑资料

    运行一个简单的脚本 假设你有一个脚本叫:/usr/local/bin/myscript. ,你想要每隔一小时就运行一次, Service 文件 第一步,创建一个service文件,根据你Linux的发 ...

  7. ArduPilot开源飞控系统之简单介绍

    ArduPilot开源飞控系统之简单介绍 1. 源由 2. 了解&阅读 2.1 ArduPilot历史 2.2 关于GPLv3 2.3 ArduPilot系统组成 2.4 ArduPilot代 ...

  8. u盘装linux系统简单方法,用u盘安装linux系统的简单方法教程

    [教程介绍] 虽然我们多数人都是使用windows操作系统,但不得不承认,还是有大量的用户在使用linux操作系统,这个系统也是有很多自己的优势. 以前装系统,多数都是光驱来安装,现在很多新电脑,基本 ...

  9. 自定义控件其实很简单2/12

    转载:http://blog.csdn.net/aigestudio/article/details/41316141 上一节我们粗略地讲了下如何去实现我们的View并概述了View形成动画的基本原理 ...

最新文章

  1. linux驱动:音频驱动(六)ASoc之codec设备
  2. 阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办
  3. Pass NI Certification
  4. python3 strip lstrip rstrip 删除字符串首尾指定字符
  5. 多台Linux服务器SSH相互访问无需密码--转
  6. python常用导入函数及其他操作备忘录
  7. 位运算的那些奇技淫巧 | 掌(装)握(逼)必备,妙解两道算法题
  8. GraphPad Prism 统计教程:简单线性回归原理
  9. js判断输入数字是否是整数,金额、数字
  10. 小而全的Pandas使用案例
  11. 直方图规定化python+opencv实现
  12. thon3爬虫之urllib携带cookie爬取网页的方法
  13. 如何使用思维导图?思维导图绘制方法介绍
  14. RGB渐变色与HSL渐变色
  15. python发微信提醒天气冷了注意保暖_天气变冷了,用Python给父母制作一个天气提醒小助手~...
  16. Redis 九种数据结构及其底层实现 持久化 缓存机制 过期键与内存淘汰 集群等相关知识
  17. HTML5特效~3D立方体旋转
  18. oracle rac部署示意图,Oracle 11g RAC部署手册 For Linux PDF
  19. 租传奇手游服务器网站,传奇手游服务端
  20. 瑞昱RTL8201G(I)-VB-CG 规格应用--电口传输距离(500M)之王

热门文章

  1. PS软件操作应用—文字特效
  2. vyos-vyatta在ospf和bgp之间路由重发布使用 打tag形式进行路由过滤
  3. 微精:推荐+订阅=个性化智能体验
  4. Terraform学习2
  5. Cesium中获取地形三角网并进行土方计算
  6. Python操作Excel(二)
  7. day06 记账程序01
  8. 香港十大炒黄金交易公司排名2020版一览
  9. 港交所2012交易日列表
  10. 行业说 | 建筑业面临失宠,越来越留不住年轻人?原因在这