汇编语言(三十四)之输出中文
输出中文
程序运行:
代码:
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点阵字库的字模提取软件
汇编语言(三十四)之输出中文相关推荐
- 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)
昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2-十换成10.可是那么问题来了- 一十二呢-不能是11 ...
- [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析
从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...
- 程序员编程艺术第三十四~三十五章:格子取数问题,完美洗牌算法
第三十四~三十五章:格子取数,完美洗牌算法 作者:July.caopengcs.绿色夹克衫.致谢:西芹_new,陈利人, Peiyush Jain,白石,zinking. 时间:二零一三年八月二十三日 ...
- 程序员编程艺术第三十四 三十五章 格子取数问题,完美洗牌算法
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 第三十四 ...
- c语言三级上机题库,2006年9月全国等级考试三级c语言上机题库(三十四)
★☆题目34(无忧id 73,102 素数题) 无忧id 102 题提供了求素数isPrime()函数 程序prog1.c的功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数 ...
- 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...
- 【正点原子FPGA连载】第三十四章RGB-LCD触摸屏实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...
- 操作系统真象还原实验记录之实验三十四:实现管道
操作系统真象还原实验记录之实验三十四:实现管道 1.管道相关知识总结 先说我们操作系统的管道实现: 上述图中,管道缓冲区就是一页内存,这一页内存被我们当成了环形缓冲区结构, 当这页管道被创建出来后,全 ...
- 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...
- 现实迷途 第三十四章 响亮一巴(下)
第三十四章 响亮一巴(下) 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任. 耳边响起的中文或英文的浪漫情歌,闪烁的霓虹灯灯光和点点的蜡烛烛光,精致的生日蛋糕,江北深情清唱的生日歌,以及 ...
最新文章
- 【怎样写代码】工厂三兄弟之工厂方法模式(四):工厂方法模式
- MyEclipse 中修改JSP模板
- 修改 ASP.NET 请求队列的限制
- 40亿条/秒!Flink流批一体在阿里双11首次落地的背后
- Java语言之数组_java语言之数组-----选择排序
- 统计一个数的补码中二进制中1的个数
- 直接输出数组的名字不一定是地址值
- java.sql.SQLException: ORA-01438: 值大于此列指定的允许精确度
- How-to: Build VPP FD.IO development environment with Mellanox DPDK PMD.
- linux判断字符串命令行,bash – 将命令行参数与字符串进行比较
- DG - 物理Standby角色转换
- ubuntu 卸载python_如何在各种环境下正确安装python——Linux
- 空间索引之网格与四叉树
- Android原生获取经纬度位置信息
- hdu 1757【A Simple Math Problem】
- 《奋斗》里徐志森的七堂地产财商课
- EXCEL10:excel看板
- YoMail 隐藏小功能之怎样在yomail里使用石墨文档?
- 怎样查看ie浏览器的版本号
- 微信开发者工具的使用(一)