汇编语言(三十四)之输出中文

输出中文

程序运行:

代码:

daones segmentfull_name              db 0,1,2,3,4,5
full_name_length       dw $-full_name
start_char             db 0
change_char_count      dw 6color                  db 1
x                      dw 40 
y                      dw 10
direction              dw 2 sceen_start_width      dw 0
sceen_width            dw 80 sceen_start_height     dw 0
sceen_height           dw 25;------以下为孙悟空 16X16 字模点阵数据 db字母开头补充0-----------
buffer  db 00H,7EH,02H,04H,08H,0AH,0CH,39H        ;孙db 0C9H,0AH,0CH,08H,08H,08H,28H,10Hdb 20H,20H,20H,20H,20H,0B0H,0A8H,24Hdb 26H,22H,20H,20H,20H,20H,0A0H,40Hdb 10H,13H,10H,10H,59H,54H,51H,91H        ;悟db 17H,10H,11H,11H,11H,11H,11H,11Hdb 08H,0FCH,80H,88H,0FCH,88H,08H,08Hdb 0FEH,08H,0FCH,08H,08H,08H,0F8H,08Hdb 02H,01H,7FH,40H,84H,0CH,10H,20H        ;空db 00H,3FH,01H,01H,01H,01H,0FFH,00Hdb 00H,00H,0FEH,02H,44H,30H,18H,08Hdb 00H,0F8H,00H,00H,00H,04H,0FEH,00Hdaones ends codes segmentassume cs:codes, ds:daones
main proc farpush ds mov ax,0 push ax mov ax,daonesmov ds, axmov es, axmov ax,12hint 10H     ;置图形模式mov ax, 3int 10H     ;置文本模式;-----从显示字库start_char处替换为“雷正宇”字模-----lea bp, buffer                  ;取字模首址mov dl, start_char              ;从显示字库start_char处替换mov dh, 0mov cx, change_char_count       ;换change_char_count个字mov bx, 1000hmov ax, 1100h ;装入用户字体int 10hcall dealret 
main endp deal proc near mov ax,0b800hmov es,ax	next:call print_namemov ah,1int 16h          ;有按键按下吗?jz no_check_key	 call press_keycmp cx,1234h jz exitno_check_key:call sleepmov dx,xadd dx,direction           ;移一个位置mov x,dxcmp dx,sceen_start_width        ;已到最左边了吗?jz change_direction	 mov ax,sceen_widthsub ax,full_name_lengthcmp dx,ax        ;已到最右边了吗?jz change_directionjmp undochange_direction:neg direction	 undo:jmp next                ;在新位置重新显示exit:ret deal endpprint_name proc near   uses ax cx si di  cld                       ;正序显示mov ax,y                  ;找到字符串所在显存的地址mul sceen_widthadd ax,xadd ax,axmov di,ax           mov ah,color	            ;设置前景色cmp ah,7jz  resetinc ahjmp continuereset:      mov ah,1	 continue:mov color,ahlea si,full_name            ;指向串首mov cx,full_name_length     ;full_name_length个字符call clear_screen           ;清屏show:lodsb                      ;取一字stosw                      ;存入显存loop show                  ;显示下一字ret   
print_name endp press_key proc near  uses ax bx  mov cx,0 mov ah,0int 16h          ;取其键值cmp al,0dh       ;是回车吗?jnz has_keymov cx,1234hjmp exithas_key:	cmp ah,80jnz no_VK_DOWNmov bx,sceen_heightdec bxcmp y,bxjae no_VK_DOWNinc yjmp exitno_VK_DOWN:     cmp ah,72jnz exitmov bx,sceen_start_heightcmp y,bx jz exitdec yexit:ret 
press_key endp    clear_screen proc near  uses ax bx cx dx mov ah,6            ;清屏mov al,0 mov bh,7 mov ch,0 mov cl,0 mov dh,24 mov dl,79 int 10h ret clear_screen endp sleep proc  uses ax cx dx mov cx,10delay:mov dx,3dahone:in al,dxtest al,8jnz onetwo:in al,dxtest al,8jz twoloop delayret
sleep endpcodes endsend main

 

左边框里面竖着读一个字节长度数据作为存储子模,读两列。由于汉字是由两个字母位置组成的

注:16点阵字库的字模提取软件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue使用element ui实现下拉列表分页的功能!!!

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”前几天做了个功能,需求是使用利用element ui如何给下拉列表分页,经过网上查找,自己摸索,已经完成,今天来记录一下吧。实现的…

POJ2373-Dividing the Path【单调队列优化dp】

正题 题目链接:http://poj.org/problem?id2373 题目大意 长度为L,要求每个区域都被洒水器覆盖,而且在每只奶牛的喜爱区域只能由一个洒水器覆盖,洒水器必须放在整数点,喷洒半径只能在a∼ba\sim ba∼b区间。 解题思路 我们考虑d…

ASP.NET Core 运行原理解剖[2]:Hosting补充之配置介绍

在上一章ASP.NET Core 运行原理解剖[1]:Hosting中,我们介绍了 ASP.NET Core 的启动过程,主要是对 WebHost 源码的探索。而本文则是对上文的一个补充,更加偏向于实战,详细的介绍一下我们在实际开发中需要对 Hosting 做一些配置时经…

汇编语言(三十五)之输入字符串以$结束然后输出字母个数

输入字符串以$结束然后输出字母个数 程序运行: 代码: datas segment buff db 100h dup(?)letter_count dw 0nextline db 0dh,0ah,$datas ends codes segment assume cs:codes,ds:datas main proc far push dsmov ax,0push ax mov ax,datasmov ds,ax…

vue中如何使用vi-for限制遍历的条数?只查询前三条、查询4-6条怎么实现?

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”前言今天整理个简单的功能,vue中的v-for如何限制遍历输出的数据,比如我想在一个存放10条数据的集合中只输出3条怎么写?只想从第四条开始输出到第10条…

P3370-[模板]字符串哈希【hash】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP3370 大意 输出若干个字符串&#xff0c;求输入的字符串的总个数。 解题思路 就是用hash表就好了。 code #include<cstdio> #include<iostream> #include<string> #define p 300…

编译原理(一)之词法分析

词法分析 (1)参考附录1设计一个简单语言的词法分析程序&#xff0c;要求能够处理注释、换行回车、部分复合运算符&#xff08;如>&#xff09;。 (2)设计并实现含多条简单赋值语句的语法分析程序&#xff0c;要求有一定的出错提示与错误恢复功能。 (参考附录2) 附录1:…

粗略使用.NetCore2.0自带授权登陆Authorize

上篇Linux.NetCoreNginx搭建集群 有朋友提及到如果nginx做集群后应该还会有下一篇文章主讲session控制&#xff0c;一般来说就是登陆&#xff1b;本篇分享的内容不是关于分布式session内容&#xff0c;而是netcore自带的授权Authorize&#xff0c;Authorize粗略的用法&#xff…

vue中如何在地图中标点…

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”前言昨天分享了下vue中v-for的一些特殊用法&#xff0c;料想标题给写成了vi-for…太粗心了。文章连接在这里&#xff1a;vue中如何使用v-for限制遍历的条数&#xff1f;只查询前三条、…

P3501-[POI2010]ANT-Antisymmetry【hash,二分答案】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP3501 大意 一个01串&#xff0c;如果一个串翻转后取反和原串是相同的&#xff0c;那么这就是个反对称的。求这个01串有多少个子串是反对称的。 解题思路 一个反对称串就是将这个串取反然后放在原串后…

被黑客盯上了…数据都给打包带走了…

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”前言在创建数据库的时候&#xff0c;突然之间&#xff0c;发现创建的表通过select * from 表名 查询不到了&#xff0c;于是就开始检查是不是sql语句写错了&#xff0c;检查半天&#…

编译原理(二)之语法分析

采用实验1的简单语言&#xff0c;设计并实现含多条简单赋值语句的语法分析程序&#xff0c;要求采用算符优先的分析算法。 注意与实验1、2的衔接。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using Syste…

ASP.Net Core Razor 页面路由

在服务器端 Web 应用程序框架中&#xff0c;其中非常重要的设计是开发人员如何将URL与服务器上的资源进行匹配&#xff0c;以便正确的处理请求。最简单的方法是将 URL 映射到磁盘上的物理文件&#xff0c;在 Razor 页面框架中&#xff0c;ASP.NET团队就是这样实现的。 关于 Ra…

vue实现下拉列表远程搜索示例(根据关键词模糊搜索)

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言昨天的链接没有放上去……大家访问新站的时候&#xff0c;可以在浏览器地址栏中输入&#xff1a;www.穆雄雄.com或者www.muxiongxiong.cn都可以。今天分享的效果如下&#xff1a;ima…

P3538-[POI2012]OKR-A Horrible Poem【hash,字符串】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP3538 题目大意 给一个字符串&#xff0c;有q个询问&#xff0c;询问一个区间最短循环节。 解题思路 首先最短循环节长度一定长度的约数&#xff0c;所以我们可以枚举约数&#xff0c;然后判断循环节…

编译原理(三)之语义分析

采用实验1的简单语言&#xff0c;设计并实现含多条简单赋值语句的语法语义分析程序&#xff0c;要求采用递归下降翻译法。 注意与实验1、2的衔接。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.T…

活动: 北京Xamarin分享会第6期(2017年9月9日)

每月第二个周六&#xff0c;北京丹棱街5号微软大厦&#xff0c;有什么活动&#xff1f;对, BXUG线下分享活动又来啦! 本次分享嘉宾阵容庞大&#xff0c;在金秋凉爽的季节&#xff0c;期待与大家面对面的交流。内容预告&#xff1a; 案例分享&#xff1a;某大型国企IT项目如何采…

捡到东西说给钱才给东西?算不算敲诈勒索……

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言前两天&#xff0c;将一个那天急要但是后来就不重要的东西&#xff0c;放在车筐里面&#xff0c;结果到目的地一看&#xff0c;没了……椅子还没坐热&#xff0c;有人打来电话了“你…

编译原理(四)之解析语言翻译成三地址代码

选择部分C语言的语法成分&#xff0c;设计其词法语法语义分析程序。 设计并实现一个一遍扫描的词法语法语义分析程序&#xff0c;将部分C语言的语法成分翻译成三地址代码&#xff0c;要求有一定的出错提示和错误恢复功能。 例如简单赋值语句&#xff1a; area3.14*a*a; s 2*…

POJ3784-Running Median(运行中位数)【链表】

正题 题目链接&#xff1a;http://poj.org/problem?id3784 题目大意 给出n个数&#xff0c;每两个数输出一次到目前为止输入了的所有数的中位数。 解题思路 我们使用离线算法。 既然这是一个一个输入&#xff0c;那么我们就用秘技时光倒流之数。先把所有数加入进去&#x…